我的 sprite 很小,所以偶尔点击不是很准确。我想知道如何增加 Sprite 周围的区域以仅用于触摸识别,以便不影响物理等其他内容?
例如,假设我的 sprite 尺寸为 40x40,并且我希望触摸能够被给定 sprite 的 60x60 的更大区域识别。
请看下面的代码:
func singleTapHandler(recognizer:UITapGestureRecognizer){
let locationInView = recognizer.location(in: self.view)
let locationInScene = self.convertPoint(fromView: locationInView)
print(locationInScene)
let node = atPoint(locationInScene)
if let nodeName = node.name {
if nodeName = "group1" {
fliesGroup1.changePosition()
}
}
}
更新
根据 Hola 的回答,我执行了以下操作来创建我的空 SKNode,但是当我使用 flyTouchName
通过上面的代码检查场景中的位置时,无法识别它。
var touchNode = SKNode()
touchNode.physicsBody = SKPhysicsBody(rectangleOf: CGSize(width: 60, height: 60))
touchNode.physicsBody?.collisionBitMask = 0
touchNode.isUserInteractionEnabled = true
touchNode.physicsBody?.contactTestBitMask = 0
touchNode.name = flyTouchName
fly.addChild(touchNode)
最佳答案
您可以创建一个空的 SKNode,设置它的尺寸,启用用户交互,并将它添加为您的 sprite 的子项。
然后将该节点用作您的输入处理程序。
关于swift - 如何仅增加用于触摸识别的 Sprite 区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42744136/