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
我正在尝试检测用户是在 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