ページ 11

当たり判定で

Posted: 2010年3月08日(月) 12:04
by okusi
Dxlibでシューティングゲームを作っています。

自機のHPを1000にしていて敵が自機に当たったら敵のフラグを0にして自機のHPを100減らそうとしています。
しかしHPの画像を表示させようとすると一気にHPが減ってしまいます。(敵の画像は消えてくれます)

for(i=0;i<ENEMY_MAX;i++){
  if(当たり){
enemy_flag=0;
ship_hp -= 100;
}
}

for(z=1;z<=10;z++){
if(ship_hp==100*z){
DrawGraph( 428, 434 ,img_hp[z],FALSE);
}
}

HPが1000のときの画像がimg_hp[10]
HPが900のときの画像がimg_hp[9]
というようになっていてHPが0のときは考えていません。

zはほかのところでは使っていない変数です。

なぜちゃんとと表示されないのでしょうか?教えてください。

Re:当たり判定で

Posted: 2010年3月08日(月) 15:48
by DVDM
>>okusiさん
[color=gray>>if(当たり){[/color]
ここの条件式が良く解らないので憶測になりますが、
当たり続けている間 ship_hpが -100され続けているのではないでしょうか。

if( (自機と敵の当たり判定) && (enemy_flag!=0) )
条件式をこのように変えてみるとうまくいく可能性があります。

Re:当たり判定で

Posted: 2010年3月08日(月) 17:11
by okusi
うまくいきました

ありがとうございますm(_ _)m