【发布时间】:2018-12-15 04:22:35
【问题描述】:
我正在尝试在 macOS 中创建一个小型 WASD 演示游戏。我使用NSEvent 来处理关键事件。为了检测按键,我正在搜索keyDown 事件。这是我所拥有的:
NSEvent.addLocalMonitorForEvents(matching: .keyDown) {
(keyEvent) -> NSEvent? in
if self.keyDown(with: keyEvent) {
return nil
} else {
return keyEvent
}
}
func keyDown(with event: NSEvent) -> Bool {
userInt.keyDown(key: event.characters)
return true
}
所以在这里,我按住键(正如您在游戏中所期望的那样),并且我的动作非常缓慢。就像,当我按住它时,它非常笨拙。经过进一步检查,我发现密钥重复间隔为 0.1 秒,这是在我的系统偏好设置中设置的。这意味着它正在跳帧。但是,在游戏中,我不希望此设置影响运动。那么如何在不被按键重复间隔阻止的情况下检测到按键持有事件?
【问题讨论】:
标签: macos keyboard nsevent macos-high-sierra