敵機を弧を描くように移動するには
Posted: 2010年6月12日(土) 22:26
敵機を20カウントしながら下に移動してカウントし終わったら弧を描くようにプログラミングしたつもりなのですが、止まったままになります。どうしたら弧を描くようになるでしょうか?
ソース載せます。
よろしくお願いします。
ソース載せます。
void enemy_pattern2(int i)
{
int idou=0;
float x=enemy.x,y=enemy.y;
if(enemy.cnt==0)
{
enemy.ang=0;
enemy.vy=2;
enemy.vx=0;
enemy.sp=0;
return;
}
if(enemy.cnt==20)
{
enemy.gentenx=enemy.x;
enemy[i].genteny=enemy[i].y;
return;
}
if(enemy[i].cnt==40)
{
enemy[i].ang=0;
enemy[i].vy=0;
enemy[i].vx=0;
enemy[i].sp=0;
idou=1;
}
if(enemy[i].cnt%80==0)
{
enemy[i].ang=0;
enemy[i].vy=0;
enemy[i].vx=0;
enemy[i].sp=0;
idou=1;
}
if(enemy[i].cnt%160==0)
{
enemy[i].ang=0;
enemy[i].vy=0;
enemy[i].vx=0;
enemy[i].sp=0;
idou=2;
}
switch(idou)
{
case 1:
//左に弧を描くように移動
x=((enemy[i].x-enemy[i].gentenx)*cos(2*PI/180)-(enemy[i].y-enemy[i].genteny)*sin(2*PI/180))
+enemy[i].gentenx;
y=((enemy[i].x-enemy[i].gentenx)*sin(2*PI/180)+(enemy[i].y-enemy[i].genteny)*cos(2*PI/180))
+enemy[i].genteny;
break;
case 2:
//右に弧を描くように移動
x=((enemy[i].x-enemy[i].gentenx)*cos(-2*PI/180)-(enemy[i].y-enemy[i].genteny)*sin(-2*PI/180))
+enemy[i].gentenx;
y=((enemy[i].x-enemy[i].gentenx)*sin(-2*PI/180)+(enemy[i].y-enemy[i].genteny)*cos(-2*PI/180))
+enemy[i].genteny;
break;
}
enemy[i].x=x,enemy[i].y=y;
}よろしくお願いします。