スクラッチコーチキャンプ ゲームクリエイターに、オレはなる!そんなキミを応援(子供も大人も)
  • ALL
  • はじめての方へ
  • スクラッチゲームの作り方

    ギミックのリファクタリング|スクラッチでアスレチックゲームの作り方㉑

    ギミックのリファクタリング|スクラッチでアスレチックゲームの作り方㉑
    この記事は スクラッチコーチで掲載されているオリジナル記事 のバックアップです。
    スターター作品
    なし
    今回の完成サンプル
    なし

    ギミックを動くようにはなっているけど、ここの処理はまだまだ改善できる。というか改善しておかないと、複雑なギミックを作ったり、ギミックを再利用してアスレを盛り上げることが難しいんだ。

    だから今回はギミックのリファクタリング(改善)に取り掛かろうと思う。なにげにリファクタリングが一番コーディングの練習になるから、気合を入れていってみよう。

    今回の目標

    ギミックの動きなどを再利用可能な形にリファクタリングしていく。

    ステージを改変しておく

    ちょっとスペースを作っておきたいから、シーン1の左側に通路を作っておこう。

    そしてシーン1を複製する。

    シーン0という名前にしよう。うん、シーンはマイナスになっても別に問題ない。

    で、このシーン0は色々ギミックを試したいからできるだけ広い空間にしておく。

    ギミックのリファクタリング|スクラッチでアスレチックゲームの作り方㉑を語るok-scratch ok-scratch

    u003cpu003eちなみにシーン0の上にシーンを作るとしたら?それはシーン100になる。シーン-1の上なら、それはシーン99になる。こんな感じで上下左右に好きなようにアスレワールドを展開しちゃってくれ。u003c/pu003e

    スプライト「ギミック」を改善していく

    ではスプライト「ギミック」をひらこう。

    メッセージ「シーンを切り替える」を受け取ったときに、コスチューム1に着替えて最背面に移動しておこう。

    そして新しく条件ブロックを置き、シーン0のケースを作る。

    とりあえず適当なところに出現するようにXとY座標を設定しようか。

    定義「_上下に動く」を作る

    よし、じゃあこのギミックは上下に動くようにしよう。

    これをシーン0のところで実行する。

    コーディングする

    まず向きを90度に直して、ずっとループを実行しよう。

    あ、表示するブロックも置いておこう。

    ここで1.5秒で移動するようにブロックを置き、Y座標だけ下に下るようにする。

    そしてタイミング調整のためにゼロ秒待つブロックを置く。ゼロとはいえ若干の微調整になる。

    さらにY座標が元に戻るようなブロックを置く。

    ギミックが上下に動くかテストする

    うん、いいね。これは上下に幅90で動くという相対的な値を指定しているから、どこにギミックを出現させてもいちいち座標を指定せずに動かすこと出来る。これだけでもステージ作りがめちゃめちゃ楽になったよね!

    スプライト「エネミー」からコードをコピーする

    つぎはエネミーを開こう。

    そして緑の旗が押されたときの処理をドラッグアンドドロップでギミックにコピーしよう。

    さらにメッセージ「シーンを切り替える準備をする」を受け取ったときの処理もコピーしよう。

    最後に定義「_スポーンする」もコピーしよう。

    これでOKだ。

    ギミックのリファクタリング|スクラッチでアスレチックゲームの作り方㉑を語るok-scratch ok-scratch

    u003cpu003eエネミーでも必要なブロックだから、消さずに残しておいてね。u003c/pu003e

    スプライト「ギミック」をスポーンさせる

    ではギミックに戻ろう。

    コピーしておいた定義「_スポーンする」からID以下を外して削除しよう。

    コスチュームに引数タイプを割り当てよう。

    シーン0のときに、この定義を実行する。この際、引数にはもともと設定してあったXとY座標の値を引数に持たせて、向きは90度にしよう。また、タイプはコスチューム1としておいてほしい。

    さらにシーン4のときに実行してた定義「ドアを置く」の代わりに定義「スポーンする」を使おう。定義「ドアを置く」は別の場所で使うよ。

    コスチューム名に含まれる文言によって動きを変える

    クローンされたときに条件ブロックを置こう。

    ここでコスチューム名にどんな文言が含まれるか調べる。たとえばKeyという文言が含まれていたら、という条件を作ろう。

    この場合はドアであると決める。だから定義「ドアを置く」を実行する。

    これで元通りドアが置かれるようになった。でもコーディングはより柔軟になって、ステージ作りが簡単になりそうな気配をビンビン感じる。まだ感じない人も大丈夫、ちょっと試してみるよ。

    上下する床を新しく作ってみる

    今まで「コスチューム1」だったギミックのコスチュームに「上下する床」という名前をつけよう。

    「シーンを切り替える」を受け取ったとき

    そしてメッセージ「シーンを切り替える」を受け取ったときに、スポーンするタイプを「上下する床」にしておこう。

    もう1つ追加しておこうか。

    クローンされたとき

    クローンされたときに新しく条件ブロックを追加して、コスチューム名に「上下」が含まれているかどうかを調べよう。含まれていれば定義「上下に動く」を実行する。

    追加されたかテストする

    ショート動画ではないけど、↓こんな感じで上下する床をサクッと再利用できたと思う。

    実行ブロック1つでどんどんギミックを配置できるから、すっごく楽だね。

    まとめ

    これでギミックに革命を起こしていく準備が整った!次回はいよいよアスレチックが爆発的に面白くなる仕掛けを作る。そう、回転するギミックだ!

    このグリフパッチさんの動画を再生してみて!(回転するギミックの部分だけ再生されるよ)

    これやばいっしょ!お楽しみに!

    当連載で取り上げるグリフパッチさんの動画はこちら

    この記事への質問やコメントをどうぞ

    ただいま実験的に質問を受け付けています。

    コメントは受け付けていません。

    スパム防止のため、 質問をするにはログインが必要 です。ログインはスクラッチのアカウントがあれば誰でもできます。

    ブクマよろしくお願いします!という口コミを寄せてくれた方 ブクマよろしくお願いします!
    どんどん追記・更新していくので、ブックマークやシェアよろしくお願いします!