ページ 11

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

Posted: 2009年8月16日(日) 16:41
by ベース
はじめて質問させていただきます。第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;
}
}
を通ってしまい、移動しながら弾を打っているように見えます。
なぜなのでしょうか?

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

Posted: 2009年8月16日(日) 16:57
by box
そのif文の直前で t の値を確認してみてください。
いくつになっていますか?

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

Posted: 2009年8月16日(日) 17:05
by ベース
回答ありがとうございます。213です。

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

Posted: 2009年8月16日(日) 17:34
by MNS
tが213ならば、
if(210<t && t<270 && t%3==0)
の条件を満たしていますので、実行されるのはしょうがないと思います

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