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

时间:2017-02-28 02:22:46

标签: swift touch skscene

我试图检测用户是否在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")
    }
}
}

1 个答案:

答案 0 :(得分:1)

如果您使用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