HSPネタが続きますが、ツクガクはHSPを使う生徒がけっこう多くて練習としてブロック崩しづくりなどを推奨しています。
ブロック崩しってよくよく考えると単純でありながらも、いろんなジャンルの要素を持っています。
キャラの移動と当たり判定
ブロック崩しに使われているキャラ移動や当たり判定はアイディア次第で発展させることができます。例えばボールが下に落ちてきて、バーのに当たって跳ね返るところを跳ね返さないようにすると、アクションゲームのキャラクタが地面や床で止まる動作につながります。
また、バーの移動はそのまんまシューティングでもアクションでもキャラの移動につなげられます。
当然、ボールをまっすぐ飛ばして、ブロックを崩すようになれば縦型のシューティングゲームに近くなります。
そして、ボールの動きは斜めですが、横の動きや縦の動きをブロックに与えれば、アクションゲームでもシューティングゲームでも敵の動きのようなものが成立します。
当然、両サイドの壁はアクションゲームの塀やシューティングゲームの壁に置き換えることがあります。
IchigoJamBasicであらかじめ、for文やif文の使い方をマスターしておくととてもスムーズに進められます。
もちろん、Scratchで「繰り返す」や「もし」を使いこなすことも重要で、HSPでプログラムを書くときに、考えをちょっとシミュレーションしたい場合などはScratchは大いに役立ちます。
想像したものをプログラミングする
毎度のことながら、ソースを公開したりはしませんが、言葉でしっかりと説明できることはプログラミングに置き換えやすいので、もし、ブロック崩しを作ろうとして躓いている人は、まず、言葉でプログラムの流れを書いてみましょう。
例えば私の場合は
- バーを左右に動かすーカーソルキーの左右を使う。
- ボールはいつも斜めに動いて、物に当たると跳ね返る。
- x=x+a,y=y+bで初期値はa=1,b=1
- バーやブロックに当たったらY座標が反転
- b=b*-1で反転
- 壁に当たったらx座標が反転
- a=a*-1で反転
- ブロックはボールに当たったら消える
実際はもうちょっと細かいですが、こんな感じのことをエディタにコメントとして普通の言葉で書いておいて、足りないものがあれば都度書き加えてプログラミングしていきます。
この方法が正しいかは不明ですが、そんなに難しくもなく簡単なので昔からこんな感じでやっています。いまいちどうしていいかわからない人は、ぜひ、お試しくださいね。