cocos2dx HelloWorld代码分析

前端之家收集整理的这篇文章主要介绍了cocos2dx HelloWorld代码分析前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

刚接触cocos2dx,看了一些教程之后,先稍微总结一下,有点粗浅,多多指教

1.用python脚步创建一个新项目,名为Hello:


2.可见,在projects目录下多了一个Hello的文件夹:


3.打开Hello,再打开里面的proj.win32,就可以看到有一个Hello.sln,这个是VS的工程文件,双击打开
4.如图:


5.先运行一下项目看看,按Ctrl+F5,编译成功之后会显示下图:


6.首先,当我们新建一个Cocos2d-x项目时,就会默认创建一个HelloWorldScene场景类,可以理解为上图显示在窗口的画面。那么这个画面是如何显示到窗口的呢?
我们来打开Hello项目里的AppDelegate.cpp文件,我们只看applicationDidFinishLaunching函数:


(1)pDirector->setDisplayStats(true);设置是否显示游戏的帧数等调试信息

(2)pDirector->setAnimationInterval(1.0/60);设置游戏的帧率,在这里是60帧每秒

(3)CCScene* pScene = HelloWorld::scene();创建一个场景,也就是前面提到的场景类

(4)pDirector->runWithScene(pScene);最重要的地方,只有执行了这一步,才能让场景类显示出来


7.然后我们再来看看HelloWorldScene.h的代码


  • menuCloseCallback函数是一个回调函数
  • scene函数是不可缺的,等会会在HelloWorldScene.cpp中定义,之前在

    AppDelegate.cpp中创建一个场景时用到:

  • 再来看看CREATE_FUNC(HelloWorld),这是一个宏函数,它的具体实现代码(替换参数之后)如下:

8.在HelloWorldScene,cpp中scene()的实现:


(1)CCScene* scene=CCScene::create(); 创建一个场景类。大家注意到了吗?这个场景类并不是HelloWorld本身。

(2)HelloWorld* layer = HelloWorld::create(); 创建一个HelloWorld对象,create函数正是用宏CREATE_FUNC(HelloWorld)定义的。如果仔细看HelloWorldScene.h的代码可以发现,HelloWorld继承了CCLayer类,要具体了解CCLayer和CCScene的关系,可以看下面的基础概念介绍:


可见,一个场景类里面有多个layer,上面的HelloWorld对象就是一个Layer,CCScene就是一个Scene,

(3)scene->addChild(layer); 将layer对象添加到scene对象

(4)return scene; 返回scene对象

猜你在找的Cocos2d-x相关文章