ページ 11

モヤモヤがうまくいかないです・・

Posted: 2009年11月15日(日) 17:44
by 素人
敵にダメージを与えるとき 
敵&ボスの判定部分と自機ショットが接触してる部分は 
モヤモヤみたいなものがあります。これを龍神録に実装してみたのですが、
なぜか、
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);	//←■これ■
省略

Re:モヤモヤがうまくいかないです・・

Posted: 2009年11月15日(日) 22:57
by softya
そもそも
case 7:
の後の所を通っているのかブレークポイントを張って調べてみてください。