Scratch【中級】

【中級者向け】横レースゲームの作り方(第8回)

対象:中級者向け
ブロック数:79こ

完成品の確認

操作方法

1キー・2キー交互に連打:前進する

ねことレースをします。ねこが自動で進むので、先に手前のゴールテープにつけばクリアです。

準備をしよう

下のURLをクリックして、スクラッチを開いてください。
https://scratch.mit.edu/projects/812803161/editor/

プログラミングする

「ケンちゃん」のプログラム

初めの設定

下のプログラムを入れて下さい。

ここでのポイントは、この後左下に向かって進ませるので、向きを「-120」にしています。

また奥の方にいる感じを出すために、大きさを「20」にしています。

1, 2キー交互押しで前に進む

下のようにすると、1,2キー連打で前に進むことができます。

下のプログラムを入れて下さい。

「〇キーが押されたまで待つ」ブロックと「〇キーが押されたではない、まで待つ」ブロックを組み合わせることで、1キー,2キーを交互に押さないと前に進まないようになります。

前に進めるのは、「5歩動かす」+「大きさを5ずつ変える」でやっています。初めの設定で「-120」度に向けたので、左下の方向に向かって進みます。またこちらに迫っている感じを出すために、大きさを上げています。こうすると、こちらに向かってきているように見せることができます。

ゲームクリアとゲームオーバー

メッセージで「ケンちゃんの勝ち」と「ねこの勝ち」を作ります。

下のプログラムを入れて下さい。

あとで「ゴールライン」からメッセージを送りますので、ここでは受け取ったときの処理を先に作っています。

勝った時は、テープを切ったように見せたいので、「最前面へ移動」にしてテープよりも前に来るようにしています。

プログラム確認

緑の旗を押して、動きを確認してください。以下が確認できればOKです。

  • 1, 2キーを交互に押すことで、「ケンちゃん」が手前に向かってくるように進む
  • 1, 2キーの長押しは反応しない

「ケンちゃん」のプログラムはこれで完成です。

「ねこ」のプログラム

初めの設定

下のプログラムを入れて下さい。

「ねこ」は「ケンちゃん」とは逆に右下に進むようにしたいので、向きを「120」にしています。大きさは同様に「20」にします。

ランダムで動かす

下のプログラムを入れて下さい。

ここでは、乱数を使って1~3までの数をランダムに選び出して、変数「動き種類」の中に入れています。その後、条件分岐の処理があり、その変数の中身が「1」なら「10」、「2」なら「7」、それ以外、つまり「3」なら「3」進むようにしています。

これを0.1秒ごとにやっていますので、毎回どの数になるか分からず、「ねこ」の動きは速くなる時もあれば遅くなる時もある、というようなランダムな動きになります。

アニメーションをつける

一定の間隔でコスチュームを変えることで、アニメーションをつけます。

下のプログラムを入れて下さい。

勝敗がついたときの処理

メッセージ「ケンちゃんの勝ち」と「ねこの勝ち」を受け取った時の処理を作ります。

下のプログラム入れて下さい。

これらのメッセージが送られたら、勝敗がつくことになるので、その他のプログラムの処理を止めます。「ねこ」が勝った場合は、同じくテープを切ったように見せたいので、「最前面へ移動」するようにしています。

プログラム確認

緑の旗を押して、動きを確認してください。以下が確認できればOKです。

  • 「ねこ」が自動にランダムな速さで、手前に向かってくるように進む
  • 走っているようなアニメーションがついている

「ねこ」のプログラムはこれで完成です。

「ゴールライン」のプログラム

初めの設定

画面真ん中においておきます。

画面手前にあるように見せるため、大きさを「200」、「最前面へ移動」にしておきます。

下のプログラムを入れて下さい。

どちらが勝ったかの判定

下のプログラムを入れて下さい。

「ケンちゃん > 200」というのは、ケンちゃんが「200」よりも大きくなったら、という意味です。どんどん大きくすることで手前に迫っているように見せているので、ここでの判定は大きさが「200」より大きくなったらゴールラインを切った、ということにしています。

「ケンちゃん」が先にゴールを切ったら「ケンちゃんの勝ち」、ねこが先なら「ねこの勝ち」のメッセージを送っています。メッセージは、「ケンちゃん」・「ねこ」でそれぞれ受け取って、すでに処理を作っていますね。

プログラム確認

緑の旗を押して、動きを確認してください。以下が確認できればOKです。

  • 「ケンちゃん」が先に着いたら、ゲームクリアになる
  • 「ねこ」が先に着いたら、ゲームオーバーになる

「ゴールライン」のプログラムはこれで完成です。

おめでとうございます。これでゲーム完成です。

すべてのプログラム(完成コード)

リミックスのポイント

「ねこ」の速さを変える

下の数字を変えてみましょう。「ねこ」の速さが変わります。

今回は、中級の第8回ということで、「縦レースゲーム」を紹介しました。次回もお楽しみに♪

タイトルとURLをコピーしました