パーフェクトフリ-ズについて

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

パーフェクトフリ-ズについて

#1

投稿記事 by ベース » 16年前

はじめて質問させていただきます。第28章のパーフェクトフリーズで
if(t==0 || t==210){
//40<x<FMX-40  50<y<150 の範囲で100離れた位置に80カウントで移動する
move_boss_pos(40,50,FMX-40,150,100, 80);

}

で1000カウントして移動させようとしているのですが、なぜか
if(210<t && t<270 && t%3==0){
angle=bossatan2();
for(i=0;i<8;i++){
if((k=search_boss_shot())!=-1){
boss_shot.bullet[k].col   = 0;
boss_shot.bullet[k].x     = boss.x;
boss_shot.bullet[k].y     = boss.y;
boss_shot.bullet[k].knd   = 7;
//自機とボスとの成す角を基準に8方向に発射する
boss_shot.bullet[k].angle = angle-PI/2*0.8+PI*0.8/7*i+rang(PI/180);
boss_shot.bullet[k].flag  = 1;
boss_shot.bullet[k].cnt   = 0;
boss_shot.bullet[k].spd   = 3.0+rang(0.3);
boss_shot.bullet[k].state = 2;
boss_shot.bullet[k].kaiten= 1;
}
}
を通ってしまい、移動しながら弾を打っているように見えます。
なぜなのでしょうか?

box

Re:パーフェクトフリ-ズについて

#2

投稿記事 by box » 16年前

そのif文の直前で t の値を確認してみてください。
いくつになっていますか?

ベース

Re:パーフェクトフリ-ズについて

#3

投稿記事 by ベース » 16年前

回答ありがとうございます。213です。

MNS

Re:パーフェクトフリ-ズについて

#4

投稿記事 by MNS » 16年前

tが213ならば、
if(210<t && t<270 && t%3==0)
の条件を満たしていますので、実行されるのはしょうがないと思います

tの値が途中で変わってしまっている、ということでしょうか

閉鎖

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