Вопрос Как работают игры? С точки зрения программирования и алгоритмов

Регистрация
26 Июл 2013
Сообщения
71
Репутация
-3
Спасибо
0
Монет
0
Я немного программист. Гейм-разработкой занимался очень мало, но с недавнего времени заинтересовался. Так вот у меня возник такой вопрос. Когда просто пишешь программу, на С++ например, эта программа идёт строчка за строчкой. То есть там все происходит последовательно. И когда я задумался как организовать обычное управление персонажем в игре, то возникла дилемма: если просто написать:
(Псевдокод)
if (w){goes up}
if (s){goes down}
if (a){goes left}
if (d){goes right}
То по сути программа проверит это всего один раз, то есть программа просто пойдет дальше. Я подумал что чтобы она проверяла постоянно то нужен бесконечный цикл. И даже при таком раскладе программа не пойдет дальше этого цикла.
Программисты, кто понимает, объясните. Насколько верны мои размышления?
Я и в программировании новичок и в разработке.
Отмечу лучшим того, кто объяснит проще ;)
 
Обработка ввода-вывода всегда делается в псевдореальном времени в параллельных потоках программы. Причём опрос "кнопок" происходит непрерывно и зацикленно. 10 state.read sleep.random 10
 
"программа не пойдет дальше этого цикла" - значит всю игру нужно внутри цикла сделать.
 
>> нужен бесконечный цикл Да >> при таком раскладе программа не пойдет дальше этого цикла А дальше и не надо. Все возможные события должны обрабатываться в одном цикле. Попробуй начать с того, чтобы вместо консольных программ делать программы с окнами (только на чистом WinAPI, фреймворки и библиотеки скрывают детали реализации, которые в данном случае представляют главный интерес). Они как раз делаются именно таким образом: после инициализации окна запускается цикл обработки сообщений и до самого завершения своей работы программа остаётся в этом цикле.
 
Плюсую вся игра (приложение) один большой цикл который прогоняет множество функций по кругу, внутри которых в том числе и этот псевдокод. А частота исполнения этих функций напрямую зависит от уровня высера программиста - чем круче высер тем круче лаги. Плюс есть события которые исполняют функции только в случае выполнения определенных условий
 
Назад
Сверху