しつこくシューティングをちょい改造。
システムはもとがいいともうので、演出をいじる。(というかシューティングのシステムはたぶん全部は理解していない。)とはいえ、プログラムを更新するさいのちょっとした手法を解説したいと思って。続けてます。フラグについて?
自分の機体がもう少し動いている感をだすには?
と思って、キーの左右プログラムでは方向キーですが、それを押したタイミングで絵がかわるようにすれば、例えば、左に移動しているときは、左側をむいている絵を、右に移動しているときは右側を向いている絵を表示すれば、ちょっと操作している感じがでるのでは?ということで、変更したプログラムが以下です。
と書く前に。。。そもそも分析?ですが、今回は(前回も)プログラムがあるので、なるべくその形を崩さないようにしたいです。。。
というかやりたいことは、
「左右で画像が変化して、動きがあるように見えるようにする。」
ことですが、プログラムを見てみると、自機を描画している部分と、左右のキー入力(の判断)の部分が少し違う場所にあります。
なので、以下のように考えました。
・左右のキー入力時にフラグを設定する。
・自機の秒が部分では、「フラグ」を参照(評価)して、描画する画像を変える。
どうでしょうか?もともとのプログラムの構成をあまり変更せずにすみそうです?(実際は別のこともしています。)
フラグ・・・脂肪フラグのフラグです。ちがう。Dフラグですね。というものの解説ができると思ったのですが、少しずれている?と思いますが、フラグをたてる部分と、フラグを使用する部分でわかれているので、あたらずといえども遠からず?ということで。
①Shootingクラスのwhile(loop)の前にdirectionという変数名でint(boolでもOKですが、上下も必要になるかも?ということで。これがフラグですね。)を宣言。
②case GAMEの中で自機をdrawしている部分をif(上野理屈ならswitchですが、if文の法が好きなので。)でdirectionの値でそれぞれ別の画像を描画するように修正。
③下の方(300行目あたりの)のKeyboadで押されたキーごとのif文で、directionに②で評価する値を設定する。フラグをたてているところ。
というように修正しました。
実行すると以下のようになりました。
ちなみにおじさんがまだシューティングゲームがうまかった。。。といっても10位以内に入って、イニシャルをいれるだけですが。。。ゲームは下記です。プレステではなくて、アーケードですが。。。
ギャラガがヒットしましたが、その前ぐらいですかね?ギャラクシアンよりはあと?かおなじくらい。3機合体するのですが、ぴょるっと合体したときにずれてる感じがおちゃめでした。そして3機合体状態だとほぼ無敵。