なぜか敵が動かない。
Posted: 2009年8月11日(火) 16:32
シューティングゲームの館のコードを使っていたのですが、
そろそろ本格的にやりたいので、
龍神録の館のコードも少しづつ組み込んでいるのですが、
できないところができてしまったのでアドバイス、ヒントをお願いします。
で、まず、敵でもボスのような動きができるようにしました。
というのはこれはボスの動きのための関数なのですが、
自分の作っているコードにはボスの関数は作ってないため、
普通の敵を使ってボスを作ろうとしているので、
このようにしました。
そしてそれを使うため、
としてそれを
でよびだしたのに、
動いてくれません。
どうしてでしょうか?
そろそろ本格的にやりたいので、
龍神録の館のコードも少しづつ組み込んでいるのですが、
できないところができてしまったのでアドバイス、ヒントをお願いします。
//物理的計算を点と距離指定で登録をする(指定時間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;
でよびだしたのに、
動いてくれません。
どうしてでしょうか?