performSelectorinBackground在一定时间内

时间:2014-10-25 00:24:44

标签: ios objective-c

我是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

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

自从我做游戏之后已经有一段时间了,但你必须根据自上次更新屏幕以来的时间来调整精灵移动的距离。因此,你有一个名为speed的var,你自上次刷新以来的时间,然后移动精灵那个距离。

精灵工具包中有一些方法可以解决这个问题。 YouTube上有很多教程可以解决这个问题。