【木头Cocos2d-x 033】我是定时器第02章—HelloWorld之scheduleUpdate
来源:互联网 发布:数据库管理系统的应用 编辑:程序博客网 时间:2024/05/01 07:45
我是定时器第02章—HelloWorld之scheduleUpdate
Cocos2d-x提供了不少定时功能,这次我们先来最简单的。
笨木头花心贡献,啥?花心?不呢,是用心~
转载请注明,原文地址:http://blog.csdn.net/musicvs/article/details/8550403
正文:
1. scheduleUpdate
我们现在来新建一个Cocos2d-x的项目,然后把HelloWorldScene的init函数的多余代码删掉,然后我们敲一行代码:
bool HelloWorld::init(){ bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); this->scheduleUpdate(); bRet = true; } while (0); return bRet;}
然后大家运行项目,有没有发现?神奇的事情发生了!
(小若:哪里?什么都没有!黑屏!)
别着急,还差一步(小若:你有妹妹吗?帮我问候一下?),我们要继承一个函数,在头文件里加入一句:
class HelloWorld : public cocos2d::CCLayer{public: virtual bool init(); static cocos2d::CCScene* scene(); void menuCloseCallback(CCObject* pSender); CREATE_FUNC(HelloWorld);/* update函数 */virtual void update(float fDelta);};
然后在函数里打印日志:
void HelloWorld::update( float fDelta ){CCLOG("update");}
最后,用调试模式运行,我们将看到一串串的日志输出:
update
update
update
update
update
update
update
update
Update
(小若:!!!)
2. 轻微解释原理
这倒底是什么情况?我们已经实现了定时器了,就是这么简单。我稍微解释一下,不会太深入。
(小若:你也没有那个水平= =)
this->scheduleUpdate()函数是为了把当前节点(比如CCLayer)添加到队列里,也许不是队列,总是一个队列。
(小若:算了,你别解释了。。。)
只要把节点添加到队列里(或许是其它结构,总之可以存放节点),那么这个节点就会在游戏运行的每一帧被调用一次update函数。
我们也看到,update函数里有一个float fDelta参数,这个参数的意思是,上一次调用这个函数到本次调用这个函数,中间间隔了多少秒。
好了,只是介绍性的教程,就不说得太多了。
(小若:等等!这根本就不像定时器!一点都不定时!!)
关于定时这个问题嘛,总有人喜欢不准时的~下一节再介绍那些永远都准时的人~
(小若:吊胃口什么的对我才没有效!)
- 【木头Cocos2d-x 033】我是定时器第02章—HelloWorld之scheduleUpdate
- 【木头Cocos2d-x 034】我是定时器(第03章)—真正的定时器之schedule
- 【木头Cocos2d-x 032】我是定时器(第01章)—我爱单线程之schedule介绍
- 【木头Cocos2d-x 032】我是定时器(第01章)—我爱单线程之schedule介绍
- 【木头Cocos2d-x 035】我是定时器(第04章)—停止update和触发器
- [cocos2d-x]定时器函数scheduleUpdate
- 【木头Cocos2d-x 017】控件篇(第02章)我不是DJ之圆形音量按钮
- 【木头Cocos2d-x 023】状态机篇(第02章) --状态模式之我很胖但我很强!
- 【木头Cocos2d-x 027】Lua篇(第02章):Demo讲解之Lua和C++牵手
- 【木头Cocos2d-x 027】Lua篇(第02章):Demo讲解之Lua和C++牵手
- 【木头Cocos2d-x 027】Lua篇(第02章):Demo讲解之Lua和C++牵手
- 【木头Cocos2d-x 019】控件篇(第03章)我要战斗之血量条
- Cocos2d-x三种定时器的使用schedule,scheduleUpdate,scheduleOnce
- 【木头Cocos2d-x 001】又是一个HelloWorld
- 【木头Cocos2d-x 004】HelloWorld倒底怎么玩?
- cocos2d-x之helloworld
- Cocos2d-x之helloworld
- Cocos2d-x之helloworld
- navicat for linux
- C++对象的深拷贝和浅拷贝
- 27. 在Lotus Notes中缓存视图中的配置数据提高性能
- Golang横空出世的背景(为什么选择Go)
- 获取当前运行Java的进程标识符(PID)
- 【木头Cocos2d-x 033】我是定时器第02章—HelloWorld之scheduleUpdate
- 错误
- 深入理解Oracle索引(1):INDEX SKIP SCAN 和 INDEX RANGE SCAN
- Kernel Linker Scripts Analysis (ARM Architecture)
- 用C语言语法分析pISR_EINT8_23=(U32)key_handler
- 煞费心思
- 使用gdaldem创建彩色地形图和坡度阴影——thematicmapping.org译文(三)
- mysql优化
- java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver