我试图为我的一个精灵创建一个“按钮触摸”效果,它效果很好但是我同时用两个或多个手指点击,我得到了非常奇怪的结果,这是我的代码:
let buttonPressAction = SKAction.scaleBy(0.8, duration: 0)
var button = SKNode()
override func didMoveToView(view: SKView) {
//assign sprite to node
button = self.childNodeWithName("button") as! SKSpriteNode!
}
for touch: AnyObject in touches {
let location = touch.locationInNode(self)
if button.containsPoint(location) {
button.runAction(buttonPressAction)
}
}
}
override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
button.runAction(buttonPressAction.reversedAction())
}
答案 0 :(得分:1)
尝试从
更改SK比例操作...scaleBy
到
...scaleTo
确保它始终缩放到相同的大小。使用scaleBy,它将缩放0.8,而不是0.8。这很可能会导致多次触摸产生奇怪的结果,因为每个手指/点击都会缩小0.8。
之前我从未使用过reverseAction,所以我不确定这是否会导致问题。如果它只是通过将按钮缩放回1来重置按钮
...scaleTo(1, duration: 0)
如旁注所示,您可以说
for touch in touches
而不是
for touch: AnyObject in touches