【发布时间】:2016-03-21 22:58:34
【问题描述】:
我目前正在学习在 C 中使用 SDL2,遇到了一个问题,目前我找不到解决方案
我正在尝试在屏幕中间运行一个简单的 2 帧动画循环,但是在看似设定的循环数量之后,窗口停止响应
while (1)
{
SDL_RenderClear(window->renderer);
test->o_update(sheet, test);
SDL_RenderCopy(window->renderer, sheet->texture, &test->frame, &test->pos);
SDL_RenderPresent(window->renderer);
SDL_Delay(16);
}
更新函数更新测试结构中名为“frame”的SDL_rect工作表上的坐标,使其每30帧切换到下一帧。每一帧我都用 SDL_RenderCopy 和 SDL_RenderPresent 更新屏幕。我做事的方式有什么明显的错误吗?
【问题讨论】:
-
您的
SDL_PumpEvents()/SDL_PollEvent()/SDL_WaitEvent()电话在哪里? -
确实,我后来才知道,您需要不断地轮询 SDL 上的事件以使其保持响应。