swift - 如何检测您的手指是否与蒙面 Sprite 接触

标签 swift sprite-kit sprite skphysicsbody

我需要说的是,一位开发人员告诉您应该创建一个 skphysicals 主体,以便该函数主体能够正常工作,那么是否有任何特定代码来创建该 Sprite 的 skphysicals 主体?因为我已经在物理部分的 sks 文件中给出了 alpha 掩码。顺便说一句,他还给了我一个代码示例:

if let _ = physicsworld.body(at : fingerlocation)

但是你知道,当我在 touchesmoved 函数中使用此代码时,它不仅仅适用于该 Sprite 的屏蔽部分,它适用于该 Sprite 的整个边界矩形

最佳答案

如果我理解正确的话,您希望将物理体限制为 Sprite 的纹理而不是矩形。

 let texture = SKTexture(imageNamed: "imageNameHere")
    maskedSprite.physicsBody = SKPhysicsBody(texture: texture , size: texture.size)

如果你只是想看看它是否发生了接触,你根本不需要物理体,你可以为节点添加一个名称,然后在 TouchesBegan 中检查触摸点处的节点,看看它是否已经发生了接触。与蒙面 Sprite 的名称相同。

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    for touch in touches {
        let location = touch.location(in: self)

        switch atPoint(location).name {
            case "maskedsprite"?: print("masked sprite touched")
        default: break
        }
    }
}

关于swift - 如何检测您的手指是否与蒙面 Sprite 接触,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46160742/

相关文章:

swift - 如何防止 swift Sprite 套件中的产卵重叠?

ios - 如何从 SKSpriteNode 获取颜色?

iphone - Sprite Atlas 和 @2x 图像

javascript - 在 pixi.js 中初始加载后访问纹理

通过 CloudFront 加载 CSS 图像 Sprite 比在本地加载慢

ios - Swift UISwipeGestureRecognizer 如何检测对角线滑动?

swift - 在 Swift 中,这个特定的语法是什么意思?

arrays - 是否可以检查 swift 数组中的所有值是否为真而不是一个一个地循环?

c# - 向上和向下缩放Sprite,以产生跳跃感

ios - 如何在同一个VC中设置多个UIDocumentPickers