シューティングゲームで
シューティングゲームで
この前はお答えいただきありがとうございました。
また質問なのですが
今、シューティングゲームに付け足しでアイテムを出すようにしたいのですが、なかなか上手くできません。
敵を倒すとアイテムは出るのですが、時々死なない敵が出て困っています。
自分なりに追加した部分だけ、まとめて添付しておきますので暇な時にでも見てもらえないでしょうか
基本的にサイトにあるソースに添付ファイルにある内容を追加しているだけです。
ちなみに敵のhpも設定しましたが、
EnemyCalcDisp()で敵のフラグを立てる場所に
enemy.hp=1;
と敵それぞれに設定しています。
また質問なのですが
今、シューティングゲームに付け足しでアイテムを出すようにしたいのですが、なかなか上手くできません。
敵を倒すとアイテムは出るのですが、時々死なない敵が出て困っています。
自分なりに追加した部分だけ、まとめて添付しておきますので暇な時にでも見てもらえないでしょうか
基本的にサイトにあるソースに添付ファイルにある内容を追加しているだけです。
ちなみに敵のhpも設定しましたが、
EnemyCalcDisp()で敵のフラグを立てる場所に
enemy.hp=1;
と敵それぞれに設定しています。
Re:言い忘れです
なるほど、
enemy.cpp
のファイルをそのまま見せてもらったらはっきりするんですが、
おそらく原因はコレじゃないかなと思います。
おそらく敵が消えないのは、あの赤い弾幕がくるっとまわる奴を発射する敵の時以降じゃないですか?
敵が出現する時の初期化部分を見てください。
このように初期化されているんじゃないかと思います。
case 50:
case 350:
case 650:
case 950:
case 1250:
case 1550:
case 1850:
case 2150:
case 2450:
は、前半出てくる敵に関する初期化です。
case 3050:
case 3350:
case 3650:
こちらは後半出てくる敵に関する初期化です。
この両方で初期化しないといけませんが、両方で初期化していますか?
つまりcase3050:以降の初期化にenemy[i].hp=1;は書いていますか?
enemy.cpp
のファイルをそのまま見せてもらったらはっきりするんですが、
おそらく原因はコレじゃないかなと思います。
おそらく敵が消えないのは、あの赤い弾幕がくるっとまわる奴を発射する敵の時以降じゃないですか?
敵が出現する時の初期化部分を見てください。
switch(counter){
case 50:
case 350:
case 650:
case 950:
case 1250:
case 1550:
case 1850:
case 2150:
case 2450:
enemy.hp=1; enemy.pattern=2; //どういう軌道を描くか
enemy.flag=1; //出現フラグを立てる
enemy.counter=0;//出現して何カウント目か測るカウンター初期化
enemy.size=0.5f;//敵の大きさ
enemy.range=(int)((MONSTER1_X_SIZE-60)/2.0f*enemy.size); //※画像サイズから余白の部分60ピクセルを引く
enemy.x=210.0; //xの初期座標
enemy.y=-10.0; //yの初期座標
break;
case 3050:
case 3350:
case 3650:
enemy.pattern=5; //どういう軌道を描くか
enemy[i].flag=1; //出現フラグを立てる
enemy[i].counter=0;//出現して何カウント目か測るカウンター初期化
enemy[i].size=0.5f;//敵の大きさ
enemy[i].range=(int)((MONSTER1_X_SIZE-60)/2.0f*enemy[i].size); //※画像サイズから余白の部分60ピクセルを引く
enemy[i].x=210.0; //xの初期座標
enemy[i].y=-10.0; //yの初期座標
break;
このように初期化されているんじゃないかと思います。
case 50:
case 350:
case 650:
case 950:
case 1250:
case 1550:
case 1850:
case 2150:
case 2450:
は、前半出てくる敵に関する初期化です。
case 3050:
case 3350:
case 3650:
こちらは後半出てくる敵に関する初期化です。
この両方で初期化しないといけませんが、両方で初期化していますか?
つまりcase3050:以降の初期化にenemy[i].hp=1;は書いていますか?
Re:遅くなりました
ScoreDisp
ItemCalcDisp
CollisionDetection2
など、探してもない関数がありますけど、これらはどこに書いてあるんでしょうか?
ItemCalcDisp
CollisionDetection2
など、探してもない関数がありますけど、これらはどこに書いてあるんでしょうか?
Re:遅くなりました
ScoreDispはscore.cppに
ItemCalcDispとCollisionDetection2はitem.cppに
書いてあるはずなのですが、無いですかね?
ItemCalcDispとCollisionDetection2はitem.cppに
書いてあるはずなのですが、無いですかね?
Re:遅くなりました
お書きになったプログラムの中で
CollisionDetection
の攻撃あたり判定の中の
if(enemy.hp==0&&EnemyItem.Item[d].flag==0){
の文が正しく行われていないようです。
enemy.hpが0に成った時、
EnemyItem.Item[d].flagが1であるときがあります。
この不具合を修正すれば直るでしょう。
CollisionDetection
の攻撃あたり判定の中の
if(enemy.hp==0&&EnemyItem.Item[d].flag==0){
の文が正しく行われていないようです。
enemy.hpが0に成った時、
EnemyItem.Item[d].flagが1であるときがあります。
この不具合を修正すれば直るでしょう。
Re:遅くなりました
いえいえ、あの攻撃パターン面白かったですよ。
私の作ったヘッポコなサンプルでここまで盛り上げてくださってこちらも嬉しいです。
形になったら是非見せてください☆
私の作ったヘッポコなサンプルでここまで盛り上げてくださってこちらも嬉しいです。
形になったら是非見せてください☆