鼠标点击相对于场景的位置,不是window

Position of mouse click relative to scene, not window

在我的游戏中我需要使用鼠标到select个单位。

但是,我遇到了问题,因为我不知道如何获取相对于游戏的点击坐标,而不是 window。

例如,如果第 1 单元位于游戏的 (0,0) 点,它可能位于 window 上的任何一点,具体取决于我如何平移和缩放 window , 但我希望鼠标点击 return (0,0) 无论我如何移动 window 只要我点击同一个点。

现在我正在使用:

override func mouseDown(with event: NSEvent) {
    eventPos = event.location(in: self)
    ...
}

(其余代码与鼠标点击位置无关)

这一切都在一个 GameScene 中,它是一个 SKScene。那么如何获取鼠标点击相对于GameScene的位置呢?

您需要将您的点从视图坐标转换为场景坐标:

eventPos = view!.convert(event.locationInWindow, to: view!.scene!)