如果要在 SDL3 下实现类似等待一段时间的效果可以使用 ‘GetTicks()’ 函数进行操作:
GetTicks() 语法:
|
|
其返回的是自 SDL 库被调用过去了多久,可以简单理解为相对的当前时间,以毫秒来计时。
那么仅仅是返回当前时间怎么实现 sleep() 呢?
|
|
从字面上,这个代码会每隔 100 毫秒执行一次 SDL_Log 打印。关键就在于在这个循环内会持续不断的进行一个 if 语句判断: ‘if (currentTime > lastTime + 100 )’ 。
我们将 SDL_GetTicks 的数据保存在 currentTime 内,同时还有 lastTime 来辅助我们进行计时。lastTime 初始值为 0,则在 currentTime 为 101 的时候语句成立,然后开始执行语句,在最后改变 lastTime 的值。
代码运行时 SDL_Log 输出的 currentTime 至也可以佐证这点。