笨木头  2013-01-28 21:46     Cocos2d-x,Cocos2d-x2.0     阅读(15098)     评论(13)
转载请注明,原文地址: http://www.benmutou.com/archives/56
文章来源:笨木头与游戏开发

我是定时器第02—HelloWorldscheduleUpdate

Cocos2d-x提供了不少定时功能,这次我们先来最简单的。

笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址http://www.benmutou.com/archives/56

正文:

1. scheduleUpdate

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

[cce_cpp]bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init());

this->scheduleUpdate();

bRet = true; } while (0);

return bRet; }[/cce_cpp]

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

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

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

[cce_cpp]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); };[/cce_cpp]

然后在函数里打印日志:

[cce_cpp]void HelloWorld::update( float fDelta ) { CCLOG("update"); }[/cce_cpp]


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

update

update

update

update

update

update

update

update

Update

(小若:!!!)

2. 轻微解释原理

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

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

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

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

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

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

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

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

关于定时这个问题嘛,总有人喜欢不准时的~下一节再介绍那些永远都准时的人~

(小若:吊胃口什么的对我才没有效!)

13 条评论
  • skype download 2015-03-11 09:34:37

    download skype

    free skype download
    0回复
  • javascript 2015-03-10 06:07:13

    javascript download

    javascript
    0回复
  • download firefox 2015-03-09 12:59:32

    download firefox

    mozilla firefox free download for windows 7
    0回复
  • chrome download 2015-03-09 05:42:41

    Google Chrome Download Free

    Google Chrome Free Download For Windows 7
    0回复
  • Vanessa Smith 2015-03-08 06:34:52

    I liked your blog very much.

    I want to thank you for the contribution.
    0回复
  • 晓锋lv 2014-06-27 12:17:53

    这种讲述风格,真心蛋疼。 要吐了。
    0回复
    • 博主 糟糕_树叶的mut 2014-06-27 14:14:53

      无图无真相
      0回复
  • Cocos2d-x3.0游戏实例之《别救我》第三篇——循环滚动背景 | 笨木头与游戏开发 2014-05-12 08:04:43

    […] 【木头Cocos2d-x 033】我是定时器第02章—HelloWorld之scheduleUpdate […]
    0回复
  • 唐丽梅6313 2013-08-06 17:36:51

    scheduleUpdate是自动和update连接在一起的吗?
    0回复
    • 博主 糟糕_树叶的mut 2013-08-06 17:53:10

      是的~
      0回复
  • 【笨木头原创专栏】我是定时器(第02章)—HelloWorld之scheduleUpdate | 泰然 - 专注游戏开发 Cocos2d-x教程社区 游戏引擎研究 iPhone游戏开发社区 跨平台解决方案 2013-04-16 09:36:50

    [...] 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址:http://www.benmutou.com/blog/archives/56 [...]
    0回复
  • start530 2013-01-29 09:09:00

    这篇的我都懂,很明显我的水平跟你很近了,嘿嘿嘿嘿
    0回复
发表评论
粤ICP备16043700号

本博客基于 BlazorAnt Design Blazor 开发