欢迎转载:http://blog.csdn.net/fylz1125/article/details/8489333
打开html5的工程,我用的是WebStorm。然后看到MoonWarriors的源码,如下:
源码都在src目录下,config目录下是一下配置信息,比如游戏状态,分数,命条数等。接下来就是游戏js代码了。看名字就大致知道是干什么的了。
我从开始菜单开始。
html5版的开始菜单代码是SysMenu.js。我按照它的逻辑用cocos2d-x重写了一下。看下效果
这个开始菜单有几个元素:菜单项,logo,飞机,背景图,fps就不说了。
这个类继承CCLayer。跟HelloWorld里面的结构差不多。可以看到没有构造函数。咦,为什么没有构造函数?简单解释一下。引擎引入引用计数来管理内存,然后为了方便开发者,把C++的东西包装了一下,搞的有点类似O-c了。很多地方都能看到这样的结构,又叫“二阶段构造”。如下流程:
最下面有一个宏定义的函数CREATE_FUNC(StartMenu),看代码知道他就是一个create()函数。
首先new一个对象,然后看其init()函数的返回值,init成功则将对象添加到自动释放池,否则返回null。
所以如果用这个结构来定义类,就需要实现init()函数。
我所有的界面元素都在init()函数做完了,然后下面都是一些回调函数,update()用来完成飞机的随机飞行。
1.背景
- CCSprite*sl=CCSprite::create(s_loading);
- sl->setAnchorPoint(ccp(0,0));
- this->addChild(sl,1);
2.logo