Игровой цикл Нарисуйте изображение с помощью Gdi + - PullRequest
0 голосов
/ 08 октября 2019

У меня 24 изображения, которые должны отображаться в окне на кадр. Если компьютер работает медленнее, чем ожидалось, некоторые изображения следует пропускать в зависимости от номера кадра. Как я знаю, какой кадр я должен сделать? вот код

__int64 cntsPerSec = 0;
QueryPerformanceFrequency((LARGE_INTEGER*)& cntsPerSec);
float secsPerCnt = 1.0f / (float)cntsPerSec;

__int64 prevTimeStamp = 0;
QueryPerformanceCounter((LARGE_INTEGER*)& prevTimeStamp);

__int64 currTimeStamp = 0;
float dt;


MSG msg; //declare a MSG local variable for the GetMessage of the while loop
msg.message = WM_NULL;
// Enter the infinite message loop
while (msg.message != WM_QUIT)
{
    if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    currTimeStamp = 0;
    QueryPerformanceCounter((LARGE_INTEGER*)& currTimeStamp);
    dt = (currTimeStamp - prevTimeStamp) * secsPerCnt;

   imageIndex = GetFrameNumber();   <-------- 

   Render(graphics, imageIndex);


    // Prepare for next iteration
    prevTimeStamp = currTimeStamp;
}
...