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

09-06 15:33