混淆Swift中的反转触摸事件

在我的function

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值,如果我点击底部,我会得到高价值。 这使我的精灵im移动在错误的Y方向。

但是,如果我删除self.view中的“.view”它应该像它应该。 有谁知道为什么它倒过来,当我使用self.view?

正如Whirlwind在你的问题下面的注释中所解释的那样,这是因为你自己指明了SKScene (SpriteKit),而SKView使用了SKViewUIView子类,所以UIKit系统):

iOS的 UIKit坐标系统的起源位于绘图区域的左上angular,正值从右向下延伸。

SpriteKit坐标系在iOSOS X上都使用相同的坐标系,左下angular有原点(0,0),右上angular有(1334,750)坐标。