[cocos2d-x]定时器函数scheduleUpdate

简介:

正文:

1. scheduleUpdate

我们现在来新建一个Cocos2d-x的项目,然后把HelloWorldSceneinit函数的多余代码删掉,然后我们敲一行代码:

?
1
bool  HelloWorld::init() {      bool  bRet =  false ;      do      {         CC_BREAK_IF(! CCLayer::init());           this ->scheduleUpdate();          bRet =  true ;     }  while  (0);       return  bRet; }

然后大家运行项目,有没有发现?神奇的事情发生了!

(小若:哪里?什么都没有!黑屏!)

别着急,还差一步(小若:你有妹妹吗?帮我问候一下?),我们要继承一个函数,在头文件里加入一句:

?
1
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); };

然后在函数里打印日志:

?
1
void  HelloWorld::update(  float  fDelta ) {   CCLOG( "update" ); }

最后,用调试模式运行,我们将看到一串串的日志输出:

update

update

update

update

update

update

update

update

Update

(小若:!!!)

2. 轻微解释原理

这倒底是什么情况?我们已经实现了定时器了,就是这么简单。我稍微解释一下,不会太深入。

(小若:你也没有那个水平= =

this->scheduleUpdate()函数是为了把当前节点(比如CCLayer)添加到队列里,也许不是队列,总是一个队列。

(小若:算了,你别解释了。。。)

只要把节点添加到队列里(或许是其它结构,总之可以存放节点),那么这个节点就会在游戏运行的每一帧被调用一次update函数。

我们也看到,update函数里有一个float fDelta参数,这个参数的意思是,上一次调用这个函数到本次调用这个函数,中间间隔了多少秒。

好了,只是介绍性的教程,就不说得太多了。

(小若:等等!这根本就不像定时器!一点都不定时!!)














本文转蓬莱仙羽51CTO博客,原文链接:http://blog.51cto.com/dingxiaowei/1366386,如需转载请自行联系原作者
相关文章
|
1月前
|
缓存 调度 数据库
Python中的定时器用法:Timer定时器和schedule库
Python中的定时器用法:Timer定时器和schedule库
51 0
|
18天前
|
C++
QT定时器的使用timer示例
QT定时器的使用timer示例
|
3月前
|
Go
Go 定时器:Timer 和 Ticker
本文深入探讨了 Go 语言中的 Timer 和 Ticker 定时器,详细介绍了它们的创建方式、基本用法以及相关的方法等。此外,文章还概括了这两个定时器之间的主要区别,并强调了在使用过程中的注意事项。
36 2
Go 定时器:Timer 和 Ticker
|
11月前
|
Java 测试技术
在多线程中自定义实现定时器(Timer)
在多线程中自定义实现定时器(Timer)
|
Java API 调度
Timer - 基础篇
Timer - 基础篇
136 0
Timer - 基础篇
|
安全 调度
定时器Timer详细解析与举例
定时器java.util.Timer:功能是在指定的时间间隔内反复触发指定任务的定时器事件,主要用于定时性、周期性任务的触发。
|
API 调度 Android开发
【Android 异步操作】Timer 定时器 ( Timer 与 TimerTask 基本使用 | Timer 定时器常用用法 | Timer 源码分析 )
【Android 异步操作】Timer 定时器 ( Timer 与 TimerTask 基本使用 | Timer 定时器常用用法 | Timer 源码分析 )
739 0
|
Java 调度
高并发之——ScheduledThreadPoolExecutor与Timer的区别和简单示例
DK 1.5开始提供ScheduledThreadPoolExecutor类,ScheduledThreadPoolExecutor类继承ThreadPoolExecutor类重用线程池实现了任务的周期性调度功能。在JDK 1.5之前,实现任务的周期性调度主要使用的是Timer类和TimerTask类。本文,就简单介绍下ScheduledThreadPoolExecutor类与Timer类的区别,ScheduledThreadPoolExecutor类相比于Timer类来说,究竟有哪些优势,以及二者分别实现任务调度的简单示例。
171 0
|
iOS开发
iOS NSTimer 定时器用法总结
iOS NSTimer 定时器用法总结
214 0
|
Java 调度
【高并发】ScheduledThreadPoolExecutor与Timer的区别和简单示例
JDK 1.5开始提供ScheduledThreadPoolExecutor类,ScheduledThreadPoolExecutor类继承ThreadPoolExecutor类重用线程池实现了任务的周期性调度功能。在JDK 1.5之前,实现任务的周期性调度主要使用的是Timer类和TimerTask类。本文,就简单介绍下ScheduledThreadPoolExecutor类与Timer类的区别,ScheduledThreadPoolExecutor类相比于Timer类来说,究竟有哪些优势,以及二者分别实现任务调度的简单示例。
246 0
【高并发】ScheduledThreadPoolExecutor与Timer的区别和简单示例