私は龍神録で
大きなミサイルが何個も直線状に出るボムを作りました。
http://www.youtube.com/watch?v=TL-1lIzZbPM
この動画の1分10秒とほぼ同じようなボムです。
それで、問題が出てきました。
敵ショットと自機のボムを画像のように判定させようと思い、実装してみましたが上手くいきませんでした。
図は赤がミサイル、水色が敵のショットです。
1つのミサイルに複数の敵ショットが重なった場合、敵ショットを複数消したいのです。
龍神録では下記のようにコードを書いています。
//ショットx,ショットy,被弾物体x,被弾物体y,ショット範囲,被弾物体範囲,ショット速さ,ショット角度
//自機ボムと敵弾が当たったかどうかを判定する
int out_judge_cb_Ebullet(int k,int s,int n){
if(bom.flag>0){//ボム中
if(out_judge(
effect[k].x,effect[k].x, shot.bullet[n].x,shot.bullet[n].y,
cbom_range[1],bullet_info[shot.bullet[n].knd].range,
effect[k].spd,effect[k].mvang)){
return 1;
}
}
return 0;
}
void cshot_and_enemy(){
int i,s,n,k;
for(k=0;k<EFFECT_MAX;k++)
if(effect[k].flag==2)//ボムはエフェクトのフラグを2にしています
for(s=0;s<SHOT_MAX;s++)
if(shot.flag>0)
for(n=0;n<SHOT_BULLET_MAX;n++)
if(shot.bullet[n].flag>0)
if(out_judge_cb_Ebullet(k,s,n)==1)
shot.bullet[n].flag=0;
}
何度も試しても全然分かりませんでした。
どなたかお助けいただけないでしょうか?
どうかよろしくお願いいたします。
