swift - 如何仅增加用于触摸识别的 Sprite 区域?

标签 swift swift3 sprite-kit

我的 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/

相关文章:

ios:当应用程序处于后台或挂起状态时下载大文件

swift - 在 iOS 9 中遇到 WKWebview 和 UIWebView 的问题

ios - rightBarButtonItem 图像未显示

ios - Sprite Kit - SKSpriteNode 绘制在错误的位置

ios - iOS 10 上的 UIVisualEffectView 掩码

swift - 编译项目时出现exit code 1错误

swift - Xcode 8 在 Swift 3 中的语法变化

ios - 这是使用嵌入式 cocoa pod 创建动态/嵌入式框架的正确方法吗?

swift - 每次呈现新场景时,SpriteKit 内存都会增加

swift - SpriteKit Sprite 节点不动