【发布时间】:2016-08-11 13:04:13
【问题描述】:
我正在构建一个游戏,当触摸屏幕时(它在 touchesBegan 内),标签应该弹回屏幕(仅一次)。
我发现 this 扩展有助于“弹跳”,但我不知道当我触摸 restartButton 时会发生什么(此按钮工作正常)之前 3 秒(持续时间?!?!),myLabel 只会出现,没有任何动画。我做错什么了吗?
Ps:restartButton 有一个 removeAllActions()。所以即使这个动画在循环中(我猜不是),它也会停止,不是吗?
//myLabel
myLabel.position = CGPoint(x: self.frame.width / 2, y: self.frame.height)
myLabel.text = "0"
self.addChild(myLabel)
//bounces into screen (using Sprite-Kit Spring)
self. myLabel.runAction(SKAction.moveTo(CGPoint(x: self.frame.width / 2, y: self.frame.height / 1.125), duration: 3.0, delay: 0.5, usingSpringWithDamping: 0.2, initialSpringVelocity: 0.0))
当restartButton被触摸时,它会调用这个函数:
func restartScene(){
self.removeAllChildren()
self.removeAllActions()
gameStarted = false
createScene()
}
Ps:createScene() 是实际的游戏场景(位置、比例、物理等)。
【问题讨论】:
-
removeAllActions 仅删除场景中的动作,而不是其子项的动作。 RemoveAllChildren 不会删除操作。调用删除标签上的所有操作。
标签: ios swift sprite-kit