Отметил. Я буду иметь это в виду.
аюсь создать небольшую демонстрационную игру WASD в macOS. я использую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 с, что было задано в настройках моей системы. Это означает, что это пропуск кадров. Однако в игре я не хочу, чтобы этот параметр влиял на движение. Итак, как я могу обнаружить событие удержания ключабез задерживается интервалом повторения ключа?