我是iOS编程的新手,我做了一个小游戏。
我的场景背景中有一些精灵,我想从左向右缓慢移动。 现在我在MainScene中这样做了:
[self performSelectorInBackground:@selector(doBackgroundAnimation:) withObject:sprite];
并且动画发生的方法如下所示:
-(void)doBackgroundAnimation:(CCNode *)sprite {
while (//sprite is still in the scene) {
//move sprite a little bit right
}
}
这个解决方案并不是我想要的,因为通过while循环所需的时间因设备而异。
有没有办法确保动画花费一定的时间,例如5秒? 类似的东西:
performSelectorInBackground:@selector(doBackgroundAnimation:) withObject:turtle inTime:5.0
感谢您的帮助!
答案 0 :(得分:0)
自从我做游戏之后已经有一段时间了,但你必须根据自上次更新屏幕以来的时间来调整精灵移动的距离。因此,你有一个名为speed的var,你自上次刷新以来的时间,然后移动精灵那个距离。
精灵工具包中有一些方法可以解决这个问题。 YouTube上有很多教程可以解决这个问题。