Cocos2d雪碧运动速度

时间:2012-11-17 23:59:32

标签: performance cocos2d-iphone sprite

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

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

显然

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

无论距离如何,总是意味着持续时间为5秒。但我希望速度恒定,如果它的行程为50像素或500像素。

非常感谢任何帮助

1 个答案:

答案 0 :(得分: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);