危険ドライブゲームを作ろう

 

メイクコード アーケード を使ったゲーム作り、第4弾です。
これまでに説明した内容は、今後は簡潔にしていきます。
手順が分からなくなった場合は、前のページを読み返してみましょう。

 

これから作るゲーム

今回はこれまでと違い、横向きの画面になります。
とはいえ、基本的な仕組みはこれまでとほとんど同じです。
少し応用するだけで、見た目や印象が変わるのが面白いですね。

今回のゲームは、左から出てくる赤い車を避けるだけのシンプルな内容です。
プレイヤーは緑の車を上下に操作して、赤い車との接触を避けます。

接触せずドライブするゲーム

いわば「接触せずにドライブするゲーム」です。
残機制で、赤い車に3回ぶつかるとゲームオーバーになります。
スコアは、赤い車が出現するたびに 1 点加算されます。

 

新しくプロジェクトを作成しよう

新しくプロジェクトを作成します。
プロジェクトの名前を入力して 作成 ボタンをクリックします。

プロジェクト名を入力して作成を押す

 

背景に絵を入れましょう。
シーン の中の 背景画像を○に設定 をドラッグします。

背景画像を設定する

 

最初だけ の中に配置します。

次に絵を選びます。

背景画像を選ぶ

 

ギャラリーから道路の絵を選びます。

道路の絵を選ぶ

 

この背景画像をあとで動かします。

 

プレイヤーを表示しよう

プレイヤーを表示しましょう。

スプライト の中の黄色で指定したブロックをドラッグします。

スプライトを用意する

 

最初だけ の中に配置します。

次に、絵を選びます。

プレイヤーの絵を用意する

 

ギャラリーから緑の車の絵を選びます。

緑の車の絵を選ぶ

 

同じような絵が4枚ありますが、これはアニメーション用です。
今回はアニメーションさせないので、どれを選んでもかまいません。

 

プライヤーを動かそう

プレイヤーキャラを操作できるようにします。

コントローラー の中の mySpriteをボタンで動かす をドラッグします。

ボタンで動かすを選ぶ

 

最初だけ の中に配置します。

プレイヤーの移動を上下のみに限定します。
下図のところをクリックしましょう。

移動量を指定するボタンを押す

 

速度 vx 0 vy 100 に変更します。

移動量を変更する

 

vx は横移動の大きさを指定し、vy は縦の移動を指定します。
つまり、vx を 0 にすると横の移動ができなくなります

プレイヤーの初期位置を変更します。
スプライト の中の mySprite の位置を x0 y0 にする をドラッグします。

スプライトの座標指定ブロック

 

最初だけ の中に配置します。

表示座標を x 141 y 60 に変更します。

スプライトの座標を指定する

 

この座標は適当に決めたものです。
ゲームを作っていく過程で全体のバランスを考慮し、最終的にこの値に落ち着きました。

次は、画面外へ飛び出さないようにします。
スプライト の中の mySprite を画面内にとどめるかどうかを オン に設定する をドラッグします。

スプライトが画面外へ出ないようにする

 

最初だけ の中に配置します。

スプライトが画面外へ出ないようにする

 

図の変数名に注目してください。
プレイヤーである緑の車は、変数 mySprite で管理しています。
変数に対して、絵の情報、速度、座標、画面内制限などを結び付けています。

 

背景とリンクさせよう

プレイヤーの車を操作してみてください。
上下にしか動かず、画面の外には出られません。

ただ、よく見ると背景の道路からはみ出してしまっています。

車が道路の絵から飛び出ている

 

車を監視して、道路から出ないようにします。

ゲーム の中の ゲームが更新された時 をドラッグします。

ゲームが更新されたときを使用

 

ゲーム画面は1秒間に何度も書き換えが行われています。
そのたびに処理したいことがあれば ゲームが更新された時 を使います。

どこにも連結させないで配置します。

ゲームが更新されたときは連結させない

 

車の座標を読み取り、制限する仕組みを作ります。

論理 の中の もし 真 なら をドラッグします。

条件分岐のブロックを使う

 

ゲームが更新された時 の中に入れます。

条件分岐をゲームが更新された時の中に入れる

 

もう一度、論理 の中から下図のブロックをドラッグします。
小なりの記号のブロックを使いますが、=(イコール) のブロックを選んでも小なりに変更できます。

値を比べるブロックをドラッグ

 

の部分に配置します。

条件を作る

 

スプライト の中の mySprite の x をドラッグします。

特定のスプライトの値を取得するブロック

 

左の 0 の所に配置します。

条件分の中にスプライトのx座標値を入れる

 

下図を見ながら x から y へ、0 から 30 に変更します。

スプライトのy座標値が30より小さいかの式にする

 

スプライト の中の mySprite の x を 0 にする をドラッグします。

スプライトのxを0にするブロックを選ぶ

 

もし 〜 なら の中に入れます。

下図を見ながら y30 に変更します。

指定した座標にスプライトを移動する

 

これでもし mySprite の y 座標が 30 より小さければ、y 座標を 30 にするという命令ができました。

シミュレーターで操作してみてください。
背景の道路より上には行かなくなっているはずです。
たとえば、数値「30」を「100」に変更して実行してみましょう。
制限の範囲がどのように変わるか確認できます。
確認が終わったら、数値を「30」に戻してください。

背景の道路より上には行かない

 

今回はじめて「条件分岐」を使いました。
これまでの中で、もっともプログラミングらしい処理だったのではないでしょうか。
条件分岐は奥が深く、とても重要な考え方です。
これから少しずつ、丁寧に説明していきたいと思います。

次回に続きます。

 

MakeCode Arcade

  1. MakeCodeはいかが
  2. りんご狩りゲーム
  3. りんご狩りゲーム(完)
  4. ピザを避けてゲーム
  5. ピザを避けて 2
  6. ピザを避けて(完)
  7. アカウント登録
  8. ケーキ早食いゲーム
  9. ケーキ早食い 2
  10. ケーキ早食い(完)
  11. 危険ドライブ
  12. 危険ドライブ 2
  13. 危険ドライブ(完)
  14. 15秒シューティング
  15. 15秒Shooting 2
  16. 15秒Shooting(完)
  17. ブロック崩し
  18. ブロック崩し 2
  19. ブロック崩し(完)
  20. ヘビキングを撃て
  21. ヘビキング(完)
  22. ちょびっと迷路
  23. ちょびっと迷路 2
  24. ちょびっと迷路(完)
  25. でんでんジャンプ
  26. でんでんJump 2
  27. でんでんJump(完)
  28. ミニダンジョン
  29. ミニダンジョン 2
  30. ミニダンジョン 3
  31. ミニダンジョン 4
  32. ミニダンジョン(完)