【问题标题】:C - SDL2 window crash from simple animation loopC - 来自简单动画循环的 SDL2 窗口崩溃
【发布时间】: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 上的事件以使其保持响应。

标签: c sdl


【解决方案1】:

问题是由于缺少对 SDL 事件的等待/轮询,在这些情况下进程最终会停止响应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多