Swift 触摸识别无法识别被触摸的屏幕的一半

Swift touch recognition not recognising one half of screen being touched

我正在尝试检测用户是在 SKScene 中触摸屏幕的左侧还是右侧。

我已将以下代码放在一起,但它只输出 "Left" 而不管触摸的位置。

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {



for touch in touches {
    let location = touch.location(in: self)

    if(location.x < self.frame.size.width/2){
        print("Left")
    }

    else if(location.x > self.frame.size.width/2){
        print("Right")
    }
}
}

如果您使用 SpriteKit 项目的默认场景,锚点是 (0.5, 0.5),它将场景的原点置于中心。如果你想测试触摸位置是左还是右,你应该将条件检查更改为(无论锚点如何,这都会起作用):

for touch in touches {
    let location = touch.location(in: self)

    if(location.x < frame.midX){
        print("Left")
    }

    else if(location.x > frame.midX){
        print("Right")
    }
}

详情请见:SKScene