無題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
aniy

無題

#1

投稿記事 by aniy » 18年前

初歩的な質問かと思いますが、サンプルのシューティングゲームプログラムにて、敵が連射弾を発射中に敵を倒すと敵が画面から消えているのに弾だけは発射され続けています。
その現象を改善するために色々とプログラムをいじってみたのですが、なかなかうまく動いてくれません。

例えば ショットパターン2にて、敵が4発目を撃った後に撃破したら5発目以降の弾を描画させたくない

という事を正常に動かすためには、ショットパターン2の関数の中で、for(int j=0;j<10;j++)
の次に敵がまだ表示中か判定して、表示中ならば以下のif(EnemyShot.counter==20*j) に進む。
表示中でないならばfor(int j=0;j<10;j++) のfor文を抜ける
という処理にすればいいのだと考えているのですがうまくいきません。

他にもやり方を色々考えてみたのですが、うまくいくような処理が思いつきませんでした。
書きたいことがうまく書けずにこのような文章になってしまいましたが、良い方法がありましたらご助言をお願いいたします。

Justy

Re:無題

#2

投稿記事 by Justy » 18年前

という処理にすればいいのだと考えているのですがうまくいきません

 for分を抜けてはだめなんじゃないでしょうか?
 それだと発射済みのものまで処理がスキップされてしまいそうなので、
敵が倒されていたら初期化だけをスキップする、ようにすればいいかと思います。


 例えばショットパターン2だったら
[color=#d0d0ff" face="arial">    if(EnemyShot.counter==20*j){[/color]
[color=#d0d0ff" face="aria[/url]    if(enemy.flag && EnemyShot.counter==20*j){[/color]

にするとか。

aniy

Re:無題

#3

投稿記事 by aniy » 18年前

アドバイス通りに実行してみたところ、正常に動くようになりました。
Justyさんありがとうございました。

また質問させていただくと思いますが、よろしくお願いします。

閉鎖

“C言語何でも質問掲示板” へ戻る