javascriptとenchant.jsを使ってスマホでできるシューティングゲームを作りました。
ちなみに以前iPad + アップルペンシルでシューティングゲームをやると良いという話を書きましたが、このゲームもiPad + アップルペンシルのほうがやりやすいです。
↓ツイッターに動画も載せたので見てみて下さい。
https://t.co/NqLXRZ4avL
— ワタナベスグル11/22文学フリマ ナ-25 (@tickring) November 17, 2020
はじめてシューティングゲームを作ったので良かったらやってみてください。ブラウザゲーです。人差し指一本で操作できます。スコア500超えたら結構すごいです。 pic.twitter.com/ph9VT403VB
↓この本の後半にシューティングゲームのサンプルが載っていて、それを参考にして作りました。中古なら150円ぐらいで買える本なので、おすすめです。(ただしサンプルプログラムをダウンロードできるサイトが閉鎖してしまっているので、紙面に載っているものを手作業で書き写すしかないですが…)
本を買いたくない方は↓こちらのサイトでも似た内容のものが見れます(本の方が詳しく解説されてますが)
https://original-game.com/enchant-js-shooting/
一番の肝は敵の当たり判定の部分で、
if (game.frame % 40 === 0) {
enemies[game.frame] = new Enemy(50,50);
gameScene.addChild(enemies[game.frame]);
enemies[game.frame].extence = true;
}
↑この部分で40フレームごとに敵を出現させて、
for(var i in enemies){
if (!enemies[i].extence) continue;
if (enemies[i].within(this,20)) {
gameScene.removeChild(this);
gameScene.removeChild(enemies[i]);
enemies[i].extence = false;
score+=100;
}
}
↑敵が弾に当たるたびにこの処理を行うことで各敵を個別に当たり判定しています。
僕が作ったやつでは敵にHPが設定されているので、上記の当たり判定のところで弾が当たったと判定されたら enemies[i].HP -=1 という感じでHPを減らすようにして、ゼロになるとremoveChildされる処理にしています。