我有一个类在屏幕上的随机点创建一个精灵,然后这个精灵移动到屏幕的中心。
我怎样才能让它始终以相同的速度行进?
显然CCMoveTo* move = [CCMoveTo actionWithDuration:5 position: ccp(screenWidth/2, screenHeight/2)];
无论距离如何,总是意味着持续时间为5秒。但我希望速度恒定,如果它的行程为50像素或500像素。
非常感谢任何帮助
答案 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);