敵の体力について
Posted: 2008年2月04日(月) 16:07
こんにちは。私はDXライブラリを使ってゲーム制作をしている短大生です。
貴サイトの「シューティングゲームの館」を参考にして進めてきました。記載されている部分までは終わったので自分で色々プログラムを組んで行こうと思ったのですが、敵の体力を設定しようとするところでつまづいてしまいました。現在考えているのは、hpという変数をとり、自機の弾を当てるたびにhpの値を増やしていき、それがhp=5になったら敵のフラグを消す、というプログラムですが、うまくいきません。
プログラムが見づらいかもしれませんが、是非ご教授お願いします。
void CollisionDetection(){
int s=0;
enemy.hp=0;
for(int i=0;i<PLAYER_MAX_SHOT1;i++){ //ショットの全列分
for(int j=0;j<PLAYER_MAX_SHOT2;j++){ //1列全弾分
if(PlayerShot[j].flag==1){ //その弾が発射中なら
for(s=0;s<ENEMY_TOTAL_NUM;s++){ //全敵100体分
if(enemy.flag==1){ //その敵が出現中なら
double x,y;
int range;
x=(int)(PlayerShot[j].x-enemy.x);
y=(int)(PlayerShot[j].y-enemy.y);
switch(i){
case 0: //0列目と
case 5: //5列目と
case 6: //6列目の
range=12; //大きさは半径12
break;
default:
range=9; //大きさは半径9
break;
}
//当たり判定。敵の体力設定
if((int)sqrt(x*x+y*y) < range+enemy.range){ //当たり判定内なら
PlayerShot[j].flag=0;
enemy.hp++;
if(enemy.hp==5){
enemy.flag=0; //表示フラグを戻す
PlayerShot[j].flag=0; //当たった弾を消す
if(CheckSoundMem(sound_enemy_death)==1){ //消滅音が鳴っていなかったら
StopSoundMem(sound_enemy_death); //とめて
}
PlaySoundMem(sound_enemy_death, DX_PLAYTYPE_BACK); //消滅音を鳴らす
}
}
}
}
}
}
}
}
貴サイトの「シューティングゲームの館」を参考にして進めてきました。記載されている部分までは終わったので自分で色々プログラムを組んで行こうと思ったのですが、敵の体力を設定しようとするところでつまづいてしまいました。現在考えているのは、hpという変数をとり、自機の弾を当てるたびにhpの値を増やしていき、それがhp=5になったら敵のフラグを消す、というプログラムですが、うまくいきません。
プログラムが見づらいかもしれませんが、是非ご教授お願いします。
void CollisionDetection(){
int s=0;
enemy.hp=0;
for(int i=0;i<PLAYER_MAX_SHOT1;i++){ //ショットの全列分
for(int j=0;j<PLAYER_MAX_SHOT2;j++){ //1列全弾分
if(PlayerShot[j].flag==1){ //その弾が発射中なら
for(s=0;s<ENEMY_TOTAL_NUM;s++){ //全敵100体分
if(enemy.flag==1){ //その敵が出現中なら
double x,y;
int range;
x=(int)(PlayerShot[j].x-enemy.x);
y=(int)(PlayerShot[j].y-enemy.y);
switch(i){
case 0: //0列目と
case 5: //5列目と
case 6: //6列目の
range=12; //大きさは半径12
break;
default:
range=9; //大きさは半径9
break;
}
//当たり判定。敵の体力設定
if((int)sqrt(x*x+y*y) < range+enemy.range){ //当たり判定内なら
PlayerShot[j].flag=0;
enemy.hp++;
if(enemy.hp==5){
enemy.flag=0; //表示フラグを戻す
PlayerShot[j].flag=0; //当たった弾を消す
if(CheckSoundMem(sound_enemy_death)==1){ //消滅音が鳴っていなかったら
StopSoundMem(sound_enemy_death); //とめて
}
PlaySoundMem(sound_enemy_death, DX_PLAYTYPE_BACK); //消滅音を鳴らす
}
}
}
}
}
}
}
}