如何检测你的手指是否与蒙面精灵接触

时间:2017-09-11 16:55:19

标签: swift sprite-kit sprite skphysicsbody

我需要说一个开发人员告诉你应该创建一个skphysics主体,以便函数体在点工作,所以如果有任何特定的代码来创建该sprite的skphysics主体?因为我已经在物理部分的sks文件中给出了一个alpha蒙版。顺便说一句,他还给了我一个代码示例:

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

但是你知道当我在我的touchesmoved函数中使用这个代码时,它不适用于该精灵的蒙面部分,它适用于该精灵的整个边界矩形

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你想将物理体限制为精灵的纹理而不是矩形。

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

如果您只是想查看它是否已经联系,您根本不需要物理主体,可以在节点中添加名称,并在touchesBegan中检查触摸点处的节点,看它是否有与蒙面精灵相同的名称。

    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
        }
    }
}