Обновление игры на С++ (потоки или таймер)?

Недавно я пытался создать игру самостоятельно, и тут у меня возник один вопрос... Я хочу рендерить свою игру со скоростью 60 раз в секунду, и это хорошо, но затем я использую Directinput8, чтобы настроить клавиатуру и мышь. up, И я отлаживаю свою игру... Я обнаружил, что моя клавиатура также обновляется 60 раз в секунду. например, я нажимаю «ВВЕРХ», и мое меню сходит с ума! Я знаю, что могу использовать несколько переменных, чтобы исправить это, но я также слышал, что Timer и Threads полезны, могу ли я попросить какого-нибудь парня, который когда-то делал игру, или знает, что мне делать, чтобы дать мне несколько советов? Все будет полезно! Спасибо! :) Между прочим, я знаю, что есть некоторые классные библиотеки (например, Allegro?), которые сделаны, может быть, кто-нибудь может сказать мне, как они победили эту проблему «обновления и рендеринга»?


person Dean    schedule 18.05.2014    source источник
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
comment
Умный! Я понял идею, спасибо за вашу помощь! Желаю тебе хорошего дня. - person Dean; 18.05.2014