ゲームライブラリ構築までの道「インベーダー編」#5 : 弾の発射

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

こんにちわ。
 

ファミコンのシューティングゲームが大好きだった、下駄です。
 

ゼビウス、スターソルジャー、グラディウス、ツインビー・・・
 

どれも、BMGが流れると今でもテンションが上ります。
 

本日のIT謎掛け

「シューティングゲーム」と、かけまして、
 

「友達の内間君と待ち合わせ」と、ときます。
 

そのココロは・・・
 

うちまくる。

ソースコード

今回は、自機から弾を発射させてみたいと思います。
 

弾の発射は、マウスクリック、スペースバーを使いますが、スマートフォンは、別途コントローラを考えたいので、今回はPC仕様で作業を薦めます。
 

not canvas

解説

なるべく、本家に似せるために、背景色を黒にして、インベーダーなどのドット絵に色をセットしてみました。
 

今回の目的の弾の発射ですが、this.shootsという、内部配列を持たせて、クリックした時(スペースを押した時)に、この配列に自機の座標をpush(配列追加)します。
 

これにより、弾の発射位置を特定します。
 

あとは、animationタイミングで、y座標にマイナス値を加えていくと、弾が発射されたように見えます。
 

this.shootsを配列にした点は、弾を連打すると、後発の弾が、前の弾をかき消してしまうため、複数保持する必要があったためです。
 

もし、1発だけでいいのだとすると、弾が消えるまでは、次の弾の座標登録をしないようにしないといけないのですが、配列にしていると、配列数が指定数を超えたら、登録をしなければいいだけなので、1つでも2つでも好きな数値でプレイできます。
 

今回は、2発動時発射を許可しています。
 

もはや、コリジョン判定を入れてないのに、無意識に敵キャラに弾を当ててしまいますよねwww

Github

ソースは以下にアップしています。(ver:0.4)
 

https://github.com/yugeta/game_invader

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です