Cocos2d-x学习笔记(1)- HelloWorld

时间:2023-02-06 18:58:40

我以前学的东西很杂,后来主要是写WP7移动应用,现在有机会来接触cocos2d-x这一套优秀的跨平台游戏引擎,不过我的游戏开发的经验很少,有说错的地方请大家原谅,话不多说,直接来写游戏吧!前面主要是讲解知识点,后面会以开发一个山寨的切水果为例来作为练习。
cocos2d-x因为是直接从cocos2d上搬过来的,包含了Objective-C风格的一些类,熟悉OC的人开发起来会方便很多,cocos2d-x引擎自带tests样例详细地展示了引擎自带的一些效果,如果你在开发的过程中遇到一些问题,或者想做一些效果,都可以参考tests中的源码。接下来我们就看最简单也是最熟悉的一个样例——Hello World!
首先在vs的解决方案中看一下hello world的目录结构,Classes中包含游戏的代码文件,Win32中包含开发平台相关的程序文件,如果你是新建一个项目,就会有个Resources文件夹,包含程序的资源文件,你可以放置图片和音频文件等。不过Classes中的文件才是程序员需要关注的重点。
Cocos2d-x学习笔记(1)- HelloWorld

AppDelegate文件很重要,重要到刚开始我们完全没有必要对它进行一些操作,里面有很多你看不懂的代码,不过你要关注的就是applicationDisFinishLanunching函数,它能够完成游戏场景的加载,你可以用CCScene指定自己要进入的游戏场景,那么游戏启动后就首先进入这个场景。而pDirector->setDisplayFPS(true);能够设置模拟器是否显示游戏的帧数,默认为60帧,也可以自己调整。CCDirector是一个非常重要的类,可以说是整个游戏的总管,大Boss,所以为了保证在游戏的任何地方都能够访问到它,就把设计成单例的模式。
CCDirector中有个MainLoop函数是自动进行内存管理和定时器的函数,当然也包含了其他的东西,按帧进行调用,其它的暂时就不懂了。。。
CCNode是图形对象的根类而CCObject是对象的根类,具体的东西会在后面的学习中告诉大家。CCScene是游戏的场景,是界面控件的载体,通过CCDirector来进行切换,CCLayer是CCScene的一个子集,同样是一个容器,不过它的重要功能是接受触摸和重力,CCSprite就是游戏精灵啦!你可以把各种2d图形当做精灵,对它进行各种操作。大体上这就是我们刚开始学习cocos2d-x需要了解的知识。现在你应该尝试去看看Hello World中代码,有点C++基础的话不是很困难,尝试把自己的图片作为背景,添加到游戏场景中。
在HelloWorld.h中要包含cocos2d.h这样你才能包含游戏引擎的库函数,为了能在游戏中添加层要让HelloWorld的类继承CCLayer,class HelloWorld : public cocos2d::CCLayer,init()函数是场景的初始化需要调用的,scene()是场景加载时调用的,menuCloseCallback是回调函数。其实HelloWorld里要讲的也就这么多了,更多的内容等后面的学习一步一步讲才能更加清楚。