我试图检测我的精灵节点是否被触动,我不知道从哪里开始。
let Pineapple = SKSpriteNode(imageNamed: "Pineappleimg") Pineapple.userInteractionEnabled = true Pineapple.position = CGPoint(x: CGRectGetMidX(self.frame) - 200,y: CGRectGetMidY(self.frame)); self.addChild(Pineapple)
首先将SKSpriteNode的name属性设置为字符串。
pineapple.name = "pineapple" pineapple.userInteractionEnabled = false
override func touchesBegan(touches: NSSet,withEvent event: UIEvent) { let touch:UITouch = touches.anyObject()! as UITouch let positionInScene = touch.locationInNode(self) let touchednode = self.nodeAtPoint(positionInScene) if let name = touchednode.name { if name == "pineapple" { print("Touched") } } }
这是一种方法。
您也可以将SKSpriteNode子类化并覆盖其中的touchesBegan。
class TouchableSpriteNode : SKSpriteNode { override func touchesBegan(touches: NSSet,withEvent event: UIEvent) { print("touched") } }
然后做
let pineapple = TouchableSpriteNode(imageNamed: "Pineappleimg") pineapple.userInteractionEnabled = true pineapple.position = CGPoint(x: CGRectGetMidX(self.frame) - 200,y: CGRectGetMidY(self.frame)); self.addChild(pineapple)
原文地址:https://www.jb51.cc/swift/320738.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。