シューティングゲームの館21~

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

シューティングゲームの館21~

#1

投稿記事 by はね » 18年前

はじめまして。
いつも参考にさせていただいております。
さっそく質問なのですが、21からの色々な敵の弾を表示する所で質問です。
void EnemyShotPattern*(int i)の関数を作成する所です。

これを実行すると敵の出す弾がうまく表示されません。
どうやら弾幕を出しても、一番先頭の弾が画面外に行くと表示されている弾全てが消えてしまうようです。

自分なりに色々と試行錯誤してみたものの、上手くいきません。

ご教授お願います。

管理人

Re:シューティングゲームの館21~

#2

投稿記事 by 管理人 » 18年前

いつか誰かに突っ込まれるだろうなと思っていましたが、やはりご指摘受けました^^;
http://dixq.net/s/31.html
この辺のショットとかですよね。

このシューティングプログラムは程度画面外に出ると発射フラグを落とすようにプログラムしてあります。
フラグを落とすまでのカウンタを用意するべきでしょうが、とにかく「プログラムを複雑化したくない」という事でこのような書き方にしています。

一度ある程度距離の有る画面外に出ると発射フラグが0になってしまいます。

enemy_shot.cpp

に 
 
//弾が画面より外にあるときは発射フラグを戻す。
if(EnemyShot.EnemyShots[j].x<-20.0||EnemyShot.EnemyShots[j].x>440.0||EnemyShot.EnemyShots[j].y<-20.0||EnemyShot.EnemyShots[j].y>500)
 
 
とありますが、これがその処理です。
例えばx座標が-20以下になるとフラグが落ちます。これに余裕を持たせれば玉が消える現象が軽減できるでしょう。
おもいっきり画面外にわざと出るようなタイプの弾幕はフラグを落とすまでのカウンタを用意するべきでしょう。
とりあえずこのフラグの有効範囲を広くする事で対処できるのではないでしょうか。

はね

Re:シューティングゲームの館21~

#3

投稿記事 by はね » 18年前

素早い返答ありがとうございます^^

おっしゃる通り、弾が消える判定をカウンターに任せたら上手くできました。
まだまだ初心者ですが、今後もよろしくお願いします

管理人

Re:シューティングゲームの館21~

#4

投稿記事 by 管理人 » 18年前

解決もお早いですね☆
頑張ってください^^

閉鎖

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