cocos2dx定时器时间不准
来源:互联网 发布:ubuntu运行安卓程序 编辑:程序博客网 时间:2024/06/11 02:10
.h
class TestClas : public Node{
public:
float time;
Label* label;
TestClass(){};
~TestClass(){};
virtrue bool init();
CREATE_FUN(TestClass);
void refresh(float dt);
}
---------------------------------------------------------------------------------------
.cpp
bool TestClass::init(){
time = 0;
TTFConfig ttfConfig(fontname, fontsize);
label= Label::createWithTTF(ttfConfig, text );
label->setSystemFontSize(fontsize);
label->setString(text);
label->setTextColor(textColor);
this->addChild(label);
this->schedule(schedule_selector(), 0.04f);
}
void TestClass::refresh(float dt){
time+=0.04f; //time+=dt;
label->setString(StringUtils::format("%f", time));
if(time>=60){
this->unschedule(TestClass::refresh);
}
}
-------------------------------------------------------------------------------------------------
基本代码就这样 每隔0.04s时间加0.04, 最后看总共执行的时间, 1分钟的时候停止
但这样写的结果就是time的时间比实际时间会慢,刚开始以为是cocos2dx最快每贞刷新速度比0.04s大,然后将0.04s改为0.07、0.09、0.1、0.12、0.2都出现这样的情况
然后就将TestClass::refresh中的time+=0.04f;改为time+=dt; 就正常了。
估计原因:总定时器的调度器执行每个定时器的时候,需要遍历一遍,当符合当前定时器设置的刷新频率0.04s的时候,就回调执行该方法。在遍历执行过程中会有延迟,即时间比0.04s大,所以总的时间比实际时间会慢。dt是实际的时间间隔。
- cocos2dx定时器时间不准
- 看,时间不准啊!
- solr记录时间不准
- window时间不准设置
- 解决AlarmManager时间不准
- Quartz nextGivenMinuteDate时间不准
- 解决AlarmManager时间不准
- cocos2dx 定时器
- Cocos2dx 定时器
- cocos2dx 定时器
- cocos2dx 定时器
- Delphi Sleep时间不准解决方案
- GCD定时器替换NSTimer不准的问题
- Cocos2dx的定时器
- Cocos2dx 定时器schedule
- quick cocos2dx 定时器
- cocos2dx 实现全局定时器
- cocos2dx 全局定时器
- Docker搭建本地私有仓库
- linux 删除目录的命令
- 关于document.write()会清空dom的一点解释
- 优化网站设计(三十):优化CSS sprites
- Javascript类继承浅析
- cocos2dx定时器时间不准
- javascript防反跳技术
- Javascript限制网页只能在微信内置浏览器中访问
- [C++]LeetCode: 68 Rotate Image
- Android 基于ImageSwitcher实现的左右切换图片
- MongoDB分页查询的方法及性能
- Android笔记----Service组件
- STM32微控制器启动代码
- 优化网站设计(三十一):不要在页面中缩放图片