欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

倒计时cocos定时器schude使用的过程中 帧率浮动较大导致执行时机不准确的问题解决

程序员文章站 2023-11-02 15:48:04
需求是这样的 从10分钟倒计时到0 出现问题的点 schude使用的过程中 帧率浮动较大导致执行时机不准确 解决方法 倒计时之前记录下当前时间(system_clock/...

需求是这样的

从10分钟倒计时到0

出现问题的点

schude使用的过程中 帧率浮动较大导致执行时机不准确

解决方法

倒计时之前记录下当前时间(system_clock/steady_clock)

m_begintimepont = std::chrono::system_clock::now();

在shcude中与其对比 用 总的时间 - 差值 = 实际应该显示时间

auto currenttimepont = std::chrono::system_clock::now();
auto duration = std::chrono::duration_cast(currenttimepont - m_begintimepont).count();
m_ncountdown = m_ntotalcountdown - duration;

此时这个倒计时就不会因为帧率的问题误差越来越大了