Недавно я пытался создать игру самостоятельно, и тут у меня возник один вопрос... Я хочу рендерить свою игру со скоростью 60 раз в секунду, и это хорошо, но затем я использую Directinput8, чтобы настроить клавиатуру и мышь. up, И я отлаживаю свою игру... Я обнаружил, что моя клавиатура также обновляется 60 раз в секунду. например, я нажимаю «ВВЕРХ», и мое меню сходит с ума! Я знаю, что могу использовать несколько переменных, чтобы исправить это, но я также слышал, что Timer и Threads полезны, могу ли я попросить какого-нибудь парня, который когда-то делал игру, или знает, что мне делать, чтобы дать мне несколько советов? Все будет полезно! Спасибо! :) Между прочим, я знаю, что есть некоторые классные библиотеки (например, Allegro?), которые сделаны, может быть, кто-нибудь может сказать мне, как они победили эту проблему «обновления и рендеринга»?
Обновление игры на С++ (потоки или таймер)?
comment
Из статьи MSDN о DirectInput: Использование DirectInput для ввода с клавиатуры и мыши не рекомендуется. Вместо этого следует использовать сообщения Windows.
- person chris   schedule 18.05.2014
comment
ааа... хорошо. Думаю, мне просто нужно настроить свой код для использования Windows Message! Спасибо за совет мужик!
- person Dean   schedule 18.05.2014
Ответы (1)
Часто на игру приходится один поток рендеринга. Он периодически, скажем, каждую секунду, обновляет весь экран, принимая все данные, которые вы вводите в данный момент. Ввод, такой как клавиатура и мышь, вы собираете за пределами этого потока, и этот поток получает его для каждого обновления.
person
Alexander Kulyakhtin
schedule
18.05.2014
Умный! Я понял идею, спасибо за вашу помощь! Желаю тебе хорошего дня.
- person Dean; 18.05.2014