MakeCode Arcade Twitterネタゲーム第二弾 「足を止めるな! ~女子会潜入大作戦!!~」を作ってみた(その2)

プログラミング

前回記事にて全て書ききれなかったため、その続編です。

Ver.1リリース

https://makecode.com/_hsT9WJ1Ct4hL

内容が少し重複してしまいますがVer.1をリリースした時のプログラムの全体です。

Ver1のプログラム全体

全体としてはゴールを花畑からキャラクターのイメージに変更し、敵キャラクターは動かないようにステージに固定で配置しました。

また、タイトル画面を追加し、上下でプレイヤーキャラクターを変更できるようにしました。

全体構成

イベント(関数)ブロックは以下の16個あります。

  • 「最初だけ」ブロック
  • 「ゲームが更新された時」ブロック
  • 「Aボタンが押した時」ブロック
  • 「プレイヤーが警官(スヌーピー)の位置に重なった時」ブロック
  • 「上ボタンが押した時」ブロック
  • 「下ボタンが押した時」ブロック
  • 「プレイヤーがリボンの位置に重なった時」ブロック
  • 「プレイヤーがゅぇの位置に重なった時」ブロック
  • 「プレイヤーがちゃぶ台の位置に重なった時」ブロック
  • 「プレイヤーがまっきーの位置に重なった時」ブロック
  • 「関数キャラクター変更」ブロック
  • 「関数ゲーム中「A」ボタン処理」ブロック
  • 「関数タイトル「A」ボタン処理」ブロック
  • 「関数ゲーム開始処理」ブロック
  • 「関数タイトル画面処理」ブロック
  • 「関数ゴール処理」ブロック

プロトタイプ版にあった「プレイヤーが花畑の位置に重なった時」ブロックは無くなり「プレイヤーがゅぇの位置に重なった時」ブロック、「プレイヤーがちゃぶ台の位置に重なった時」ブロック、「プレイヤーがまっきーの位置に重なった時」ブロックの3つが代わりを処理になります。

定期的に発射体として動いていた敵キャラクターを作る「ゲームが更新された時 2000ミリ秒毎」ブロックは不要となったので無くしました。

また、同じロジックが複数個所で使われるようになったため、一部の処理を関数化しました。

それぞれの処理について説明していきます。(特筆すべき事が無い、または変更の無いブロックは省略します)

「最初だけ」ブロック

ここではタイトル画面とゲームで共通するプレイヤーの生成と各種初期設定を行っています。

Ver1「最初だけ」ブロック

キャラクターインデックスについては後述するため、ここでは省略します。

タイトル画面の処理は「関数タイトル画面処理」ブロックを呼び出し、ゲーム開始の処理は「関数ゲーム開始処理」ブロックを呼び出し実装しています。

「Aボタンが押した時」ブロック

ここではAボタンを押した時の処理を実装しています。

Ver1「Aボタンが押した時」ブロック

タイトル画面とゲーム中で「A」ボタンの役割が変わるため、変数「タイトルフラグ」を使って分岐しています。

タイトル画面時には「関数タイトル「A」ボタン処理」ブロックを呼び出し、ゲーム中には「関数ゲーム中「A」ボタン処理」ブロックを呼び出し実装しています。

「上ボタンが押した時」ブロック、「下ボタンが押した時」ブロック

ここでは上ボタン、下ボタンを押した時の処理を実装しています。

Ver1「上ボタンが押した時」ブロック
Ver1「下ボタンが押した時」ブロック

上ボタンも下ボタンもほぼ同じような処理なため、並べて説明します。

「A」ボタンの時と同じようにまずはタイトル画面とそれ以外(ゲーム中を想定)に分岐しています。

タイトル画面でのキャラクター変更を実装しており、選択中のキャラクターは変数「キャラクターインデックス」として範囲内の数値で保持しています。

分岐後の「関数キャラクター変更」ブロックの呼び出しで実際にキャラクターインデックスに合わせてプレイヤーキャラクターを変更しています。

後で気づいたのですが「関数キャラクター変更」ブロックの呼び出しはキャラクターインデックスを変更した時だけ呼び出せば良いのでタイトル画面時内に含めるべきでした。

「プレイヤーがリボンの位置に重なった時」ブロック

プレイヤーがリボンと重なった時の処理を実装しています。

Ver1「プレイヤーがリボンの位置に重なった時」ブロック

プレイヤーはリボンを取る事でリボンを付けてゴール(女子会に参加)できるようにするため、変数「リボンフラグ」を「1」に変更し、「関数キャラクター変更」ブロックを呼び出しています。

「関数キャラクター変更」ブロック

「関数キャラクター変更」ブロックが呼び出された時の処理を実装しています。

Ver1「関数キャラクター変更」ブロック

リボンの有無と選択中のキャラクターにてプレイヤーを変更しています。

「関数タイトル画面処理」ブロック

「関数タイトル画面処理」ブロックが呼び出された時の処理を実装しています。

Ver1「関数タイトル画面処理」ブロック

変数「タイトルフラグ」を「1」にしてタイトル画面中である事としています。

その間、100msの一時停止を繰り返して処理を進めないように停めています。

タイトル画面で「A」ボタンを押す事で変数「タイトルフラグ」が「0」になり説明表示用に実装したタイトル文字を表示してタイトル画面処理を抜けます。

toto進化版リリース

結局、ゲーム「足を止めるな! ~女子会潜入大作戦!!~」はプロトタイプ版、Ver.1、Ver.2.1、Ver.3.0、Ver.4.0、Ver Final、Ver おまけ、Ver toto進化版と8回リリースしました。

しかし大きなゲームの内容としてはVer.1でほぼ実装したままでキャラクターのバリエーション変更が主なバージョンアップになっています。

特筆すべき内容も特にないので細かい解説は省略します。

ちなみにこの最終バージョンでは倍率を最小にしてもプログラム全体を見渡す事ができないくらいに大きくなってしまいました。

Ver toto進化版のプログラム全体

途中、どんな変化をしていったか確認できるようにそれぞれのバージョンのリンクを以下に用意しておきました。

https://makecode.com/_gcKW8KP4W8d9
https://makecode.com/_Y2eR5R4wmav9
https://makecode.com/_8v6UP31Wp7fc
https://makecode.com/_gWrFXHbk74Xg
https://makecode.com/_dz8fFJYxY6Ls
https://makecode.com/_K6HLKrV2iRpz

まとめ

今まで作ってきたゲームもそこそこ遊んでくれていましたが今回のゲームは遊んでくれる人が増え、僕も作っていて気持ちよくなってきたので8回ものリリースを行いました。

ただ、キャラクターもかなり増え、キャラクター毎の能力、癖も違ってくるため、開発中のテスト作業がおろそかになってしまい全キャラでクリアできるか確認する前にリリースする事になりました。

それでも攻略法をたくさん試してもらい、動画まで作成してくれたちゅんさんには感謝しています。

今月末には次回の女子会が決まっているのでそれまでに新たなゲームをリリースしようと考えているのでまた当ブログにて紹介しようと思います。

  ↓現在MakeCode Arcadeを学べる唯一の書籍です。

コメント

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