我的雪碧很小,所以偶尔拍得不是很准确。我想知道我怎样才能增加雪碧周围的面积,以便触摸识别,只有这样其他的东西,如物理不受影响?
例如,假设我的雪碧尺寸是40x40,并且我希望通过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的子级。
然后使用该节点作为输入处理程序。