“RUN” それは魔法の言葉

私とコンピュータの思い出を、だらだらと綴ります。最近はHSP3でのゲーム作り日記です

126.HSPでゲームを作ろう:シューティングゲームっぽい何か その3

次は敵の動きを作ってみる。
敵は、沙羅曼蛇などに出てくる、撃つと膨らみ、最後には爆発する細胞をモチーフにする。

絵がないと始まらないので、まずはEDGE(否ブラウザ)でドット絵をかいた。
膨らむ→縮むを表現するため、簡単ではあるが2パターンのアニメをさせることにした。

細胞というより、フォゾン原子核みたいなデザインになった…ま、いいやwww

これを画面に登場させて、自機ショットとの当たり判定を行って、膨らむようにしていく。
まずは、オーソドックスに画面右から、左方向に進むように登場させる。

出現のタイミングは、1フレームごとにカウントするカウンタを使う。特定フレーム数ごとに出現させることにした。
細胞は、最大100個表示すると仮決めした。

スプライトを表示するには、スプライト番号を個別につけなくてはならないが、これぐらいなら管理不要。
es_exnew命令で、指定した範囲内で空いてるスプライト番号を探してくれる。
その値は変数に渡されるので、es_set命令で設定する。
このときのX座標は固定(右端の座標)、Y座標はランダムにした。
細胞スプライトの移動には、es_adir命令を使った。
es_adirは、スプライト番号と、移動する方向、1フレーム当たりの移動速度を指定すれば、勝手に動き続けてくれる。
左方向に進めるのは、ショットのときと同じく、1周を64分割した値をセットするので、6*8を設定。移動速度は、ゆっくり目の値を仮でべた書きした。

続けて、倍率の設定をes_setrot命令で行った。最初は100%に設定する。これをショットが当たったら、徐々に拡大して膨らむように見せる。
細胞はタイプ番号4にしたので、es_type命令で設定する。
これで、細胞側の処理はおしまい。

ショットとの当たり判定は、es_find命令と、es_check命令を組み合わせて行う。

ショットはタイプ番号2。そして当たり判定を取りたい細胞は4。
es_check命令で、細胞と当たっているスプライト番号が返ってきたら、ショットのスプライトをes_kill命令で消して、細胞のスプライトの拡大率をアップする。
やっぱり判定処理を作るのが楽だわ。

細胞はずっと膨張するのではなく、ある倍率を超えたら、爆発させたい。
爆発パターンのグラフィックを作っていないので、単純にスプライトをes_kill命令で消すだけにした。
これで、ショットを当てると細胞が膨らんで、爆発する(消える)という基本部分ができた。
ずいぶんとシューティングゲームっぽくなってきた♪

youtu.be