Это мой текущий игровой цикл в обычном окне:
while(running)
{
while( PeekMessage( &msg, 0, 0, 0, PM_REMOVE ) )
{
if( msg.message == WM_QUIT )
{
running = false;
}
TranslateMessage( &msg );
DrawGame(&game);
DispatchMessage( &msg );
}
UpdateGame(&game);
InvalidateRect(hwnd, NULL, 1);
//Sleep(100);
}
... но стоит ли мне размещать DrawGame между Translate и DispatchMessage? Если я поставлю DrawGame выше / ниже UpdateGame, ничего не отрисовывается.
И через некоторое время, если я нарисую простой прямоугольник, они начнут накладываться друг на друга. Он работает нормально около минуты, нарисуйте сетку прямоугольников (смещенную из-за: установленный вами размер окна не соответствует размеру окна. И через некоторое время он рисует другую сетку, а иногда и полностью портит окно похоже, что произошел сбой, и я должен нажать кнопку «стоп» в Visual Studio.
Итак, где именно мне разместить игровой цикл и как узнать, когда рисовать игру? В первую очередь мне нужно нарисовать прямоугольники, хотя это тоже не очень хорошо работает.