倒計時 cocos定時器(schude)誤差越來越大問題

需求是這樣的     

從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<std::chrono::seconds>(currentTimePont - m_beginTimePont).count();
m_nCountDown = m_nTotalCountDown - duration;

此時這個倒計時就不會因爲幀率的問題誤差越來越大了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章