Scratchの達人 #8 プログラムの構造の共通化
こんにちは。麻生菜乃(あそう なの)といいます。
2022年12月に「Scratchの達人」を出版しました。この本は、初心者を卒業したScratch使いが、より深いプログラミングができるるようになることを目標とした、Scratchの解説書です。読者が楽しみながら読み進められるように、主に4つのゲームのプログラミングを通して、いろいろなことを解説しています。
今回は本書の中で行っている、プログラムの構造の共通化について紹介します。
何のための共通化?
複数のスプライトのプログラムを作るときには、プログラムの基本的な構造を同じにしておくと、作業が早くなります。ハンバーガーショップにはいろいろな種類のハンバーガーがありますが、パンでハンバーグをはさむ構造は同じですよね。この構造を基本にして、ハンバーグを2枚にすればダブルバーガーに、チーズを追加すればチーズバーガーになります。ようするに構造を共通化すると、新しい構造を考えたり作ったりする必要がなくなるので、作業効率がよくなるわけです。
共通化する5つの処理
本書でも作業効率の向上のために、当たり判定に関わるスプライトのプログラムは、同じ構造で作っています。たとえば[自機]と[敵機]などがあてはまります。これらのスプライトでは基本的に、1から5の構造でプログラムを作っています。
入力処理か行動処理
プレイヤーの入力によって動く[自機]では入力処理を実行し、プログラムで自動的に動く[敵機]では行動処理を実行します。両方ともスプライトの次の行動を決定して、移動の向きなどの状態に関わる変数を更新します。各種処理1
入力処理や行動処理の結果により、[自機]や[敵機]の変数を更新します。また、当たり判定の下準備として、当たり判定に使う変数を更新します。当たり判定処理
各スプライトが、自分以外のスプライトや壁に当たっているかどうかの判定を行います。各種処理2
当たり判定の結果に応じた処理を行います。例えば[自機]が[敵機]に当たったらゲームオーバーの処理を行い、ゴールの[壁]と当たったらゲームクリアの処理を行います。[敵機]が[壁]と当たったら、移動の向きを変更します。見た目処理
スプライトの見た目に関わる処理を行います。1から4までの処理の結果、見た目が決まりますので、この処理は必ず最後に行います。
他にもいろいろなゲームプログラミングのコツを書いています
本書では具体的な共通化の方法について、サンプルゲームのプログラムを使って詳細に説明しています。また、これ以外にもいろいろなゲームプログラミングのコツをていねいに説明しています。興味を持たれた方は、ぜひご一読ください!