敌人和斜坡

时间:2009-08-07 03:53:29

标签: iphone algorithm

如何为移动物体获得一定的坡度?我试图让一个敌人在点x,y处产生屏幕,然后在屏幕上自动飞到一个新的x,y,同时添加一个斜率使它看起来像向下,向上或向上俯冲。类似的东西。现在我只知道产卵和向某个方向移动我的敌人,不知道从这里向上看什么。

1 个答案:

答案 0 :(得分:1)

如果你想在点之间移动一条直线,那么你可以将delta X和delta Y计算为:

DX = X2-X1;
DY = Y2-Y1;

然后,如果你想移动一个特定的距离(速度/帧),使用Pythagorian定理标准化长度:

HYP = DX*DX + DY*DY;
HYP = sqrt(HYP);
DX = MoveD * DX/HYP;
DY = MoveD * DY/HYP;

然后:

// Move Distance (MoveD) From X1,Y1 to X2,X2 each screen update.
if ((abs(X2-X)<DX)&&(abs(Y2-Y)<DY))
{
  X = X + DX;
  Y = Y + DY;
} else
// STOP

“俯冲”可以通过动态更改端点来完成。从“目标”前面的终点开始,然后通过目标向上移动以创建“俯冲”运动。添加“速度偏差”,使其加速向下移动并减速向上移动。

使用Bresenham的绘图算法或DDA的变体,这也可以添加到整数数学中。