鼠标的位置单击相对于场景,而不是窗口

时间:2017-03-20 18:29:44

标签: swift sprite-kit mouseevent skscene nsevent

在我的游戏中,我需要使用鼠标来选择单位。

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

E.g。如果单元1位于游戏的(0,0)点,它可能位于窗口的任何位置,具体取决于我如何平移和缩放窗口,但我希望鼠标单击返回(0,0)无论如何只要我点击相同的位置,我如何移动窗口。

现在我正在使用:

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

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

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

1 个答案:

答案 0 :(得分:3)

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

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