2012-11-17 90 views
1

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

我该如何使它始终以相同的速度行进?

明显

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

将总是意味着持续时间是不分距离的5秒。但是,如果它的行进速度是50像素或500像素,我希望速度保持不变。

任何帮助非常赞赏

回答

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); 
+0

非常感谢,可以正常使用:) –