なぜか敵が動かない。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
situmon

なぜか敵が動かない。

#1

投稿記事 by situmon » 16年前

シューティングゲームの館のコードを使っていたのですが、
そろそろ本格的にやりたいので、
龍神録の館のコードも少しづつ組み込んでいるのですが、
できないところができてしまったのでアドバイス、ヒントをお願いします。
//物理的計算を点と距離指定で登録をする(指定時間tで定位置に戻す)
void input_phy_pos(double x,double y,int t,int i){//t=移動にかける時間
	double ymax_x,ymax_y;
	if(t==0)t=1;
	enemy.phy.flag=1;//登録オン
	enemy.phy.cnt=0;//カウンタ初期化
	enemy.phy.set_t=t;//移動にかける時間をセット
	ymax_x=enemy.x-x;//移動したい水平距離
	enemy.phy.v0x=2*ymax_x/t;//水平成分の初速度
	enemy.phy.ax =2*ymax_x/(t*t);//水平成分の加速度
	enemy.phy.prex=enemy.x;//初期x座標
	ymax_y=enemy.y-y;//移動したい鉛直距離
	enemy.phy.v0y=2*ymax_y/t;//鉛直成分の初速度
	enemy[i].phy.ay =2*ymax_y/(t*t);//鉛直成分の加速度
	enemy[i].phy.prey=enemy[i].y;//初期y座標
}

//今いる位置からdist離れた位置にtカウントで移動する
int move_boss_pos(double x1,double y1,double x2,double y2,double dist, int t,int i){
	int a=0;
	double x,y,angle;
	for(a=0;a<1000;a++){
		x=enemy[i].x,y=enemy[i].y;//今のボスの位置をセット
		angle=rang(PI);//適当に向かう方向を決める
		x+=cos(angle)*dist;//そちらに移動させる
		y+=sin(angle)*dist;
		if(x1<=x&&x<=x2 && y1<=y&&y<=y2){//その点が移動可能範囲なら
			input_phy_pos(x,y,t,i);
			return 0;
		}
	}
	return -1;//1000回試してダメならエラー
}

で、まず、敵でもボスのような動きができるようにしました。
というのはこれはボスの動きのための関数なのですが、
自分の作っているコードにはボスの関数は作ってないため、
普通の敵を使ってボスを作ろうとしているので、
このようにしました。
そしてそれを使うため、
void Enemy_pat6(int i){
if(enemy[i].count>0 && enemy[i].count<6000 && enemy[i].count%60==0 ){
move_boss_pos(40,40,300,150,10,10,i)
}
}

としてそれを
case 4300:
			enemy[i].pat=6;
			enemy[i].flag=1;
			enemy[i].count=0;
			enemy[i].img=13;
			enemy[i].x=200;
			enemy[i].y=50;
			enemy[i].hp=100;
			break;

でよびだしたのに、
動いてくれません。
どうしてでしょうか?

Justy

Re:なぜか敵が動かない。

#2

投稿記事 by Justy » 16年前

 case 4300や Enemy_pat6にブレイクポイントを張ってみては?

 case 4300でヒットしなければその 4300になってほしい変数を、
Enemy_pat6がヒットしなければその呼び出し元を、
両方ともヒットしているならさらに先を調べてみてください。

situmon

Re:なぜか敵が動かない。

#3

投稿記事 by situmon » 16年前

ブレイクポイントの使い方がよくわかりませんがやってみます。

situmon

Re:なぜか敵が動かない。

#4

投稿記事 by situmon » 16年前

答えてもらったのに申し訳ないですが、
実装するのをやめました。
すいません。
ありがとうございました。
これからもよろしくおねがいします。

閉鎖

“C言語何でも質問掲示板” へ戻る