我想让“aware”skspritenode知道触摸在节点之外(例如更改颜色)。
如果可能的话,我想使用tuochesmoved(脱离节点)
我不想以任何其他方式连接它们。
那些精灵应该是独立的。
怎么做?
谢谢你
最佳答案
显然,您可以实现touchesBegan
方法来处理触摸事件:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first {
// ...
}
super.touchesBegan(touches, with: event)
}
用当前的swift 3语法处理触摸的其他事件是:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
}
override func touchesCancelled(_ touches: Set<UITouch>?, with event: UIEvent?) {
// Don't forget to add "?" after Set<UITouch>
}
关于这一点,如果您不想子类化您的
SKSpriteNode
来添加有用的属性,您可以使用userData
属性来存储有关其他节点或自己以及当前上下文的信息:yourSprite.userData = NSMutableDictionary()
yourSprite.userData?.setValue(SKColor.blue, forKeyPath: "currentColor")
yourSprite.userData?.setValue(true, forKeyPath: "selected")
关于swift - SKSpriteNode链,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40253284/