SDL_Delay不会在每次操作之前延迟
SDL_Delay doesn't delay before each action
我写了一个程序,在每个绘制的圆圈之间有一个延迟,但是当我举个例子,SDL_Delay(2)所有的东西都是黑色的,大约5秒,然后我看到所有已经绘制的东西,但我需要从一开始就看到所有的东西,这样它看起来就像一个动画。
下面是我的代码: while (t<tk){
l.a = l.a + (l.b - l.a) * t;
a=l.a;
Circle cir1(a,o);
draw_circle(cir1, canvas);
SDL_Delay(2);
t=t+0.001;
}
在每个draw_circle
之后,您实际上必须更新屏幕。几乎所有图形引擎中的绘制函数都写入缓冲区,除非你告诉它们,否则不会更新屏幕!
我不知道这是如何与不使用OpenGL的SDL一起工作的,但是有了双缓冲区OpenGL窗口,你应该写SDL_GL_SwapBuffers()
,然后在它之后,开始清除屏幕等,就好像你正在重新绘制屏幕一样!
如果它是一个单独的缓冲区窗口,您应该刷新缓冲区来更新屏幕。我从来没有使用过SDL本身(没有OpenGL),所以我不知道函数的名称,但有了这个提示,你知道为什么你的代码不工作,你应该能够找到你需要从SDL文档的函数。
相关文章:
- 为什么在popback()操作之后,它仍然打印完整的矢量
- 重载操作程序时出错>>用于类中的字符串 memebr
- 如何仅为一个函数添加延迟
- 对字符串进行位操作
- 我可以在 C++ 中的函数体之外进行操作吗?
- MPI突然停止了对多个核心的操作
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 对字符数组中的元素执行逐位操作
- 如何在directx/c++中进行平移/缩放操作
- 逐位操作的隐式类型转换
- 为什么一个向量上的多线程操作很慢
- 以在Qt中的IF语句中设置时间延迟
- 排序时无法执行交换操作.我做的时候它会崩溃.为什么
- 位移操作和位掩码未检测到重复字符
- 如何进行特定的位操作?
- 延迟操作使用 boost::d eadline_timer
- 如何延迟QML中的JavaScript操作
- C++Qt继承QMessageBox以延迟用户输入,以防止意外操作
- SDL_Delay不会在每次操作之前延迟
- 如何延迟shared_ptr的删除操作