- 1
- 2
- 3
- 4
- 5
- 6
BOOL shutdown_windows()
{
//...
Sleep(1000);
return FALSE; // Если к этому времени мы еще не закрыты - что-то пошло не так.
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+14
BOOL shutdown_windows()
{
//...
Sleep(1000);
return FALSE; // Если к этому времени мы еще не закрыты - что-то пошло не так.
}
Smekalisty 26.03.2014 13:09 # +1
absolut 26.03.2014 13:13 # +6
KonardinoHuyardino 26.03.2014 13:27 # −28
3.14159265 26.03.2014 20:44 # +2
bormand 26.03.2014 20:48 # +5
guest 26.03.2014 23:34 # +1
TarasB 26.03.2014 20:55 # +3
guest 26.03.2014 21:05 # +2
Xom94ok 26.03.2014 22:20 # +1
Lure Of Chaos 26.03.2014 23:09 # +1
з.ы. жаль, что лаба не сохранилась, показал бы свое студенческое говно = )
guest 26.03.2014 23:21 # +1
Lure Of Chaos 26.03.2014 23:27 # +1
guest 26.03.2014 23:32 # +1
Lure Of Chaos 26.03.2014 23:39 # +1
вау. эпично. я только один раз видел такое, когда вдруг дебаггер перескакивал на другое место в режиме паузы, просто при сворачивании-разворачивании окна. оказалось, логика была в методе перерисовки
а вообще, в древние времена, это было нормально, один большой цикл:
1. опросить клаву\джойстик
2. просчитать логику
3. отрисовать
4. пауза до следующего кадра
5. к п.1.
bormand 27.03.2014 05:29 # +1
> 1. опросить клаву\джойстик
> 2. просчитать логику
> 3. отрисовать
> 4. пауза до следующего кадра
Оно, емнип, и сейчас так в игрушках. Только опрос клавы\джойстика все-таки буферизованный, и ничего не теряется.
TarasB 27.03.2014 09:49 # +1
1. в цикле сообщений по сообщениям от клавы/джойстика учитываем их
2. в цикле сообщений по сообщениям от таймера пересчитываем физику, учитывая время, прошедшее после предыдущей обработки таймера, и перерисовываем всё
bormand 27.03.2014 09:57 # +1
TarasB 27.03.2014 10:11 # +1
Ведь внутри обёртки над АПИ на самом деле сидит цикл "обработать сообщения - вызвать функцию ожидания", если функция ожидания не пуста, то получаем тупой цикл как он есть.
Но я решил так всё равно не делать, потому что система тупит и буфера вовремя не чистит. Я лучше напишу SetTimer(1) (и пох, что в шиндошс на самом деле получается не 1 милисекунда, а 10-15) и буду таймер ловить. Так всё меньше тупит.
Lure Of Chaos 27.03.2014 18:32 # 0
1. поток - цикл опроса клавы\джойстика
2. поток - пересчет физики на несколько кадров вперед, с учетом нажатий
3. поток - отрисовка графики, что насчитал 2 поток, опуская кадры, если не вписываемся в fps
TarasB 28.03.2014 09:56 # +2
guest 27.03.2014 19:58 # 0
guest 27.03.2014 19:57 # 0
guest 27.03.2014 20:00 # +1
KonardinoHuyardino 26.03.2014 13:27 # −29
roman-kashitsyn 26.03.2014 13:15 # +5
KonardinoHuyardino 26.03.2014 13:27 # −29
Lure Of Chaos 26.03.2014 15:16 # +2
KonardinoHuyardino 26.03.2014 16:48 # −7
KonardinoHuyardino 26.03.2014 16:52 # −8