モヤモヤがうまくいかないです・・
Posted: 2009年11月15日(日) 17:44
敵にダメージを与えるとき
敵&ボスの判定部分と自機ショットが接触してる部分は
モヤモヤみたいなものがあります。これを龍神録に実装してみたのですが、
なぜか、
effect[k].knd が 7 になると
描画されないバグがあるのですが、原因が分からなくて困ってます・・
どこが原因なのかアドバイスお願いします。
effect.cpp内
void calc_effect(){
for(int i=0;i<EFFECT_MAX;i++){
if(effect.flag>0){ //エフェクトが登録されていたら
effect.x+=cos(effect.mvang)*effect.spd;
effect.y+=sin(effect.mvang)*effect.spd;
switch(effect.knd){ //エフェクトの種類によって分岐
省略
case 7: //敵の消滅エフェクト
effect.cnt++;
effect.r+=0.08; //エフェクトの大きさを段々大きくする
if(effect[i].cnt>10) //10カウント以上になったら
effect[i].brt-=25; //明るさを少なくする
if(effect[i].cnt>20) //20カウント以上になったら
effect[i].flag=0; //消す
break;
default:
printfDx("effect設定エラー\n");
break;
}
}
}
}
適当な場所に
void out_effect(int s){
int k;
if((k=search_effect())!=-1){
effect[k].flag =1;
effect[k].x =enemy.x;
effect[k].y =enemy.y;
effect[k].cnt =0;
effect[k].knd =7;
effect[k].brt =255;
effect[k].r =6.0; //最初は少し大きめに描画
effect[k].img =img_boss_effect[26];
effect[k].eff =0;
}
}
out.cpp内
上のほうに
extern void out_effect(int s);
//自機ショットと敵との処理
void cshot_and_enemy(){
int i,s;
for(i=0;i<CSHOT_MAX;i++){ //自機ショット総数
if(cshot[i].flag>0){
for(s=0;s<ENEMY_MAX;s++){ //敵総数
if(enemy.flag>0){
if(out_judge_cshot(i,s)){ //自機ショットと敵が当たっていれば
cshot[i].flag=0; //その自機ショットを消す
out_effect(s); //←■これ■
省略