1

我有一个类在屏幕上的随机点创建一个精灵,然后这个精灵移动到屏幕的中心。

我怎样才能使它始终以相同的速度行进?

明显地

CCMoveTo* move = [CCMoveTo actionWithDuration:5 position: ccp(screenWidth/2, screenHeight/2)];

无论距离如何,总是意味着持续时间为 5 秒。但我希望速度保持不变,如果它移动 50 像素或 500 像素。

非常感谢任何帮助

4

1 回答 1

3

计算从距离到中心的持续时间。

duration = distance / rate;

假设在 5 秒内移动 50 个像素是可以的。那么你的速率是 10 像素/秒。

rate = 10;

如果你的精灵在 (x,y) 那么距离是由勾股定理

dx = x - screenWidth / 2;
dy = y - screenHeight / 2;
distance = sqrt(dx * dx + dy * dy);
于 2012-11-18T00:07:00.643 回答