【发布时间】:2016-12-15 20:09:24
【问题描述】:
在我的功能中
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?){
for touch in touches{
let touchLocation = touch.location(in: self.view)
print("X: \(touchLocation.x) Y: \(touchLocation.y)")
}
}
我得到了反转的 Y 值。如果我点击顶部,我会得到 ~0 的价值,如果我点击底部,我会得到高价值。这使我的精灵在移动时朝错误的 Y 方向移动。
但是,如果我删除 self.view 中的“.view”,它会正常工作。有谁知道为什么我使用 self.view 时它会反转?
【问题讨论】:
-
self的类型是什么? -
@dan 这是一个 SKView...
-
这是由于 UIKit 和 SpriteKit 的坐标系之间的差异而发生的。 UIKit 的左上角有 0,0。因此,正如 OP 已经发现的那样,仅使用 self(这是一个场景)将按预期工作。
-
@kraken108 嘿伙计,你的疑惑解决了吗?
标签: ios swift sprite-kit touchesbegan