Spritebuilder 精灵位置变化
Spritebuilder sprite position changes
我在 spritebuilder 中玩游戏,我试图每 0.005 秒向上移动一个球。我有一个 NSTimer
这样做,但有时 ball.position.y + 2
是不同的。
例如,有一次我玩游戏,球以我想要的速度移动到屏幕顶部。然后,连游戏都不关,重新开场景,小球就以一半的速度运动,好像+ 2
那时候没那么多了,还是NSTimer
决定运行 半速.
注意:这只发生在实际设备上。我无法让它在模拟器中发生。
有人知道为什么会这样吗?
谢谢。
编辑:我的代码(删节):
timer2 = NSTimer.scheduledTimerWithTimeInterval(0.005, target: self, selector: "updateTick", userInfo: nil, repeats: true)
我的更新函数:
func updateTick() {
...
incrementBalls()
...
}
我的incrementBalls()
函数:
for index in 0...balls.count - 1 {
balls[index].position = ccpAdd(_physicsBody.position, CGPoint(x: balls[index].position.x, y: balls[index].position.y + 2))
}
我通过使用更新方法并做一些数学运算来移动球而不是不可靠的 NSTimer 来解决这个问题。
我在 spritebuilder 中玩游戏,我试图每 0.005 秒向上移动一个球。我有一个 NSTimer
这样做,但有时 ball.position.y + 2
是不同的。
例如,有一次我玩游戏,球以我想要的速度移动到屏幕顶部。然后,连游戏都不关,重新开场景,小球就以一半的速度运动,好像+ 2
那时候没那么多了,还是NSTimer
决定运行 半速.
注意:这只发生在实际设备上。我无法让它在模拟器中发生。
有人知道为什么会这样吗?
谢谢。
编辑:我的代码(删节):
timer2 = NSTimer.scheduledTimerWithTimeInterval(0.005, target: self, selector: "updateTick", userInfo: nil, repeats: true)
我的更新函数:
func updateTick() {
...
incrementBalls()
...
}
我的incrementBalls()
函数:
for index in 0...balls.count - 1 {
balls[index].position = ccpAdd(_physicsBody.position, CGPoint(x: balls[index].position.x, y: balls[index].position.y + 2))
}
我通过使用更新方法并做一些数学运算来移动球而不是不可靠的 NSTimer 来解决这个问题。