シューティング その1

思うに、ブロック崩しがゲームプログラミングの第一歩なら、次のステップアップとして適しているのが縦スクロール(横でもいいけど)シューティングゲームじゃないだろうか? ブロック崩しに必要な物は、バー・ブロック・ボールだけど、これらは初めから画面に表示しておけば良い。それに対して、シューティングゲームには弾を発射するという要素がある。ゲームが始まった時点では弾は画面に存在してなくて、発射ボタンが押されたタイミングで初めて画面に現れるという点が、ブロック崩しとは違う。しかも弾は発射ボタンが押される限り無限に発射されないといけない。

この、無限に生成と消滅を繰り返す弾の処理が難しくて、僕は大学1年の時にシューティングゲーム作りを挫折してしまったことがある。僕はその頃東方Projectという弾幕シューティングゲームにハマっててね、俺も自分で弾幕シューティングを作るぜ! という軽〜い考えでもってプログラミングを初めたんだけど、まぁ見事に当たって砕けた形になります。で、その後プログラミングの勉強を進めて、まぁちょっとはレベルアップしたと思うんだけど、それ以降シューティングゲームは作ってない(東方熱が冷めてしまったという原因もある)。だから、このゲーム制作日記でシューティングゲーム制作にリベンジマッチをするのだ!

といっても、例によって本格的な物は作りません。僕はデザエモン(シューティングゲームが作れるゲーム)でもステージ2まで完成させたことがないし、たくさん作ろうとしても絶対飽きちゃう。という訳で、ステージは1つだけ作って、難易度を3つくらい用意すればいいかな。ゲーム制作で一番やってはいけないことは、壮大すぎるゲームを思い描いて、手に負えなくなってしまう事なのだ。という口実で、今回もできる限り手を抜いて作っていくぞ。

えーっと、じゃあまずはプレイヤーを作ってみよう。そうそう、雑記でも触れた気がするけど、僕は全然絵が描けないので、グラフィックは腰が抜けるほど適当だ。ごめんね! という訳で、まずはプレイヤー(三角形)を方向キーで動かせるようにしてみた。

上下左右と斜めに移動することができるぞ。ちょっと注意なのが、斜め移動するときは移動速度を落とさなくてはならないということ。右を押して右に1、上を押して上に1移動する場合、両方同時に押した時に斜め上へ1移動してしまうと、それは移動しすぎになってしまうのです。縦横よりも、斜めの方が移動距離が長いからね。

という訳で、斜め移動をする際には移動速度に0.71をかけるようにした。厳密ではないけど、これで大体正しい移動速度になるらしい。

さて、第1回はこれでおしまい(全然進んでないけど‥‥)。次回は弾を発射して敵を倒すところくらいまで作りたいな。

 

戻る