MakeCode Arcade【中級】

【中級向け】宝探しゲームの作り方(第1回)

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

完成品の確認

操作方法

上下左右キー:上下左右に動く

4つの宝が画面のどこからにあります。20秒の間に、動き回りながらすべての宝を取れればゲームクリアです。

準備をしよう

下のURLをクリックして、アーケードを開いてください。
https://arcade.makecode.com/S57509-05983-17599-91640

出てきた画面の上にある「Edit Code」ボタンを押して、プロジェクトを開いてください。

プログラミングする

初めの設定

勇者

プレイヤーとして「勇者」を出して、以下の設定をします。

  • スプライトの設定
  • 位置の設定
  • 上下左右に動かす
  • カメラでスプライトを追う

以下のようにブロックを入れて下さい。

「カメラでスプライトを追う」ブロックを使うと、そのスプライトに合わせて、切れたエリアにも進むことができるようになります。

タイルマップ

タイルマップと背景色を設定します。まずはブロックを入れて下さい。

次にタイルマップを作ります。

大きさを「20×16」にして、下記のように作成してください。

もともとの画面が「10×8」ほどなので、横・縦ともに倍くらいの大きさにしています。

前出の「カメラでスプライトを追う」と一緒に使うことで、画面からはみ出したエリアにも動き回ることができるようになります。

4つの宝

4つの宝は配列で管理します。まずは、「高度なブロック」を押して、「配列」カテゴリの中から、下記のブロックを出します。配列の名前は「宝リスト」とします。4つの要素を追加してください。

この配列に、タイプを「projectile」にしたスプライトを4つ設定していきます。

これで、宝リストの中に、4つのスプライトが入っている状態になりました。

次にこれらをタイルマップ上に置いていきます。以下のブロックを使います。

・「~をランダムに〇の上に配置」ブロック

タイルマップ上の〇のタイルのいずれかにランダムに置いてくれるブロックです。

・「(配列)の〇番目の値」ブロック

・「変数カウンターを0~〇に変えてくりかえす」ブロック

「カウンター」という変数が0から始まって、繰り返すごとに1ずつ増えていきます。

〇回になったら、くりかえしが止まります。

これらのブロックを、以下のように組み立てて下さい。

ポイント

  • くりかえしのところを「0~3」にする
  • 変数「カウンター」を「〇番目の値」に入れる

配列には4つのスプライトが入っていますが、配列の番号は「0」から始まります。

そのため番号は、0, 1, 2, 3となります。

宝リストの「〇番目」に変数「カウンター」にを入れることで、ちょうどよく配列のすべてを取り出すことができます。

ただこのままでは、同じ位置に宝がダブって出てしまうことがあります。

以下のプログラムを作ってください。

ある宝が草のタイルから出てきたときに、そのタイルを消しています。

スコアとカウントダウン

スコアは「0」から、カウントダウンは「20」から、それぞれスタートさせます。最後に、「4つの宝をゲットせよ」とテロップをつけてゲームスタートにします。

プログラム確認

「▶」を押して、動きを確認してください。以下が確認できればOKです。

  • 勇者が画面左上から出てくる
  • 上下左右キーで動かせる
  • 動き回ると、カメラが勇者についてきて、ステージ全体を動ける
  • ステージ上のランダムの位置に宝が4つある(実行するたびに位置が変わる)

初めの設定は、これで完成です。

宝を取れるようにする

宝に触れたら、スコアを上げて、破壊するようにしましょう。

以下のブロックを入れて下さい。

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

スコアが「4」になったらゲームクリア、カウントダウンが「0」になったらゲームオーバーにします。

以下のブロックを入れて下さい。

プログラム確認

「▶」を押して、動きを確認してください。以下が確認できればOKです。

  • 宝に触れたら、スコアが1上がって、宝が消える
  • スコアが「4」になったら、ゲームクリアになる
  • カウントダウンが「0」になったら、ゲームオーバーになる

すべてのプログラムができました。これで完成です。

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

まとめ

中級の第1回「宝探しゲーム」を紹介しました。

アーケードの特徴は「タイルマップ」です。「シーン」カテゴリのブロックは、タイルマップの制御を行うことができます。今回は、宝の出現位置をタイルを使って制御しました。

次回もお楽しみに♪

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