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