こんばんは。世界史担当です。
去年作ったシューティングゲームを、DirectXの使用やプログラムの効率化のために一から作り直しています。
ある程度できたので、動画を撮りました。カクカクですが、撮影しながらプレイしているためです。実際はなめらかに動きます。
ルール
敵の攻撃を受けると、画面左上にあるHPが減っていく。ダメージ量はプレイヤー機のそばに表示される。
敵を倒すとプレイヤー機のHPが回復する。回復量は敵が居た場所のそばに表示される。
敵にぶつかってもダメージは受けない。
ボスの戦闘準備が整っていないうちに先制攻撃できるのは仕様です。
むちゃくちゃな難易度ですが、選べるようにするつもりです。
「被弾しまくったけど稼いだHPでボスをごり押しできた」という風にするつもりなので、基本的には弾だらけになります。
被弾時に効果音を付けると動揺して集中力が途切れそうなので、あえて付けていません。
完成率は3割とも言えますし、9割とも言えます。推定100~130時間くらいかけてこれだけしかできてないってのも悲しくなります。
ボスが発射するオレンジ色の誘導弾(みかんミサイル)は今は亡きwikiから丸パクリしたコードが元なので、
これだけ明らかにオーパーツ化しているのですが、
それをDirectXの機能であるスプライト(絵と当たり判定を持った長方形)に適用するのに時間がかかりました。
あと自機のコピー機に擬似的な弾除け機能を搭載したところ、有能すぎて人類に勝ち目がなくなってしまい、
止む無く横の当たり判定をプレイヤーの4倍にしています。これだと逆に完封できてしまいますが。
一番苦労したのはプレイヤー機を狙うボスの回転砲台で、砲台の先端にある発射口から正確に攻撃を表示させる方法が中々上手くいきませんでした。余裕があれば、この辺の解説記事でも作りたいです。
銀杏祭に向けて初めてプログラミングによる作品を作る予定の方は、
予想の3倍くらいの期間を見積もっておいた方がよいかもしれません。
私の場合は20倍くらい必要です。