[cocos2d-x菜鸟学习记录]解析示例helloWorld(上)
2014-03-21 20:42
441 查看
学习cocos2d-x已经有一个周了,进度貌似不是很快,毕竟第一次接触游戏引擎(这些都是借口),今天分享一下我在看helloworld的示例的一些心得吧,如果有哪里说得不对,希望大家能提出来。
在用python创建项目之后,我们在proj.win32文件夹中,打开整个项目,直接编译后,你会发现,会出现一个cocos2d-x的hello界面 。 这就是初始化的示例,也给我们提供了一个简单的运行框架。其实cocos2d-x给我们提供了很多的示例,大家在学习的时候可以看看官方给出的例子。废话就少说了。让我们来看看这个程序是怎么运行的吧。打开解决方案 可以看到里面有六个文件,分别是main.cpp main.h AppDelegate.cpp
AppDelegate.h HelloWorldScene.cpp 和HelloWorldScene.h。
打开main函数 可以看到几行小的代码。
CCAplication是一个创建窗口的一个类。当我们打开AppDelegate的类,可以发现AppDelegate是私有的继承了CCApplication这个类。
打开AppDelegate类可以发现里面有五个函数。
下面我们具体来看一下applicationDidFinishLaunching这个成员函数。
对于这段代码,像我一样的刚学习cocos2d-x并且没有学习过游戏引擎的菜鸟来说。CCDirector (导演类)和CCScene(场景类)一定会感觉很陌生。根据我看书后,我的理解为:每一个游戏就想一个场电影一样,电影都需要一个总指挥,那就是导演,只有导演才有能力调用各种人力物力。在这里,只有每个导演才能调用各种场景,各种资源。正如上面函数applicationDidFinishLaunching这个函数中
pDirector->setOpenGLView(pEGLView);
pDirector->setDisplayStats(true);
pDirector->setAnimationInterval(1.0 / 60);
pDirector->runWithScene(pScene)
这几句代码的一样。只有导演才有能力设置视图,设置是否要显示FPS, 设置FPS的值,和加载一个场景。
上面的代码中有一句是创建一个场景对象
CCScene *pScene = HelloWorld::scene();
可以看出pScene对象被创建 调用的是HelloWorld这个类创建的。那么HelloWorld这个类是什么意思呢?
我将在下一个节再阐述一下我的观点 !
在用python创建项目之后,我们在proj.win32文件夹中,打开整个项目,直接编译后,你会发现,会出现一个cocos2d-x的hello界面 。 这就是初始化的示例,也给我们提供了一个简单的运行框架。其实cocos2d-x给我们提供了很多的示例,大家在学习的时候可以看看官方给出的例子。废话就少说了。让我们来看看这个程序是怎么运行的吧。打开解决方案 可以看到里面有六个文件,分别是main.cpp main.h AppDelegate.cpp
AppDelegate.h HelloWorldScene.cpp 和HelloWorldScene.h。
打开main函数 可以看到几行小的代码。
AppDelegate app; CCEGLView* eglView = CCEGLView::sharedOpenGLView(); eglView->setViewName("helloworld"); eglView->setFrameSize(480, 320); return CCApplication::sharedApplication()->run();可以看出主函数创建了一个app的AppDelegate类的对象。创建并现实了OpenGLView():的窗口,接下来设置了窗口的名字和大小。并运行这个程序。
CCAplication是一个创建窗口的一个类。当我们打开AppDelegate的类,可以发现AppDelegate是私有的继承了CCApplication这个类。
打开AppDelegate类可以发现里面有五个函数。
lass AppDelegate : private cocos2d::CCApplication { public: //构造函数 AppDelegate(); //析构函数 virtual ~AppDelegate(); //用于初始化窗口场景 导演 virtual bool applicationDidFinishLaunching(); //处理当程序中断的函数 virtual void applicationDidEnterBackground(); //处理当程序被中断后开启时响应的函数 virtual void applicationWillEnterForeground(); };对于后面两个函数 对于我的注释有一点难于理解,当我们正在用移动设备玩游戏的时候,突然中途来了个电话。我们的游戏运行被迫进入后台运行,于是这时候响应的函数是applicationDidEnterBackground(),当我们电话重新打完后,我们重新进入游戏,现在我们游戏响应的是applicationWillEnterForeground().
下面我们具体来看一下applicationDidFinishLaunching这个成员函数。
bool AppDelegate::applicationDidFinishLaunching() { //c创建一个导演对象 CCDirector* pDirector = CCDirector::sharedDirector(); //创建一个openGL的视图对象 CCEGLView* pEGLView = CCEGLView::sharedOpenGLView(); //导演对象设置openGL的视图 pDirector->setOpenGLView(pEGLView); // turn on display FPS //开启限时FPS; pDirector->setDisplayStats(true); // set FPS. the default value is 1.0/60 if you don't call this //设置FPS 60帧一秒。 pDirector->setAnimationInterval(1.0 / 60); // create a scene. it's an autorelease object //创建一个场景类 CCScene *pScene = HelloWorld::scene(); // run //导演对象让HelloWorld这个场景“跑”起来 pDirector->runWithScene(pScene); return true; }
对于这段代码,像我一样的刚学习cocos2d-x并且没有学习过游戏引擎的菜鸟来说。CCDirector (导演类)和CCScene(场景类)一定会感觉很陌生。根据我看书后,我的理解为:每一个游戏就想一个场电影一样,电影都需要一个总指挥,那就是导演,只有导演才有能力调用各种人力物力。在这里,只有每个导演才能调用各种场景,各种资源。正如上面函数applicationDidFinishLaunching这个函数中
pDirector->setOpenGLView(pEGLView);
pDirector->setDisplayStats(true);
pDirector->setAnimationInterval(1.0 / 60);
pDirector->runWithScene(pScene)
这几句代码的一样。只有导演才有能力设置视图,设置是否要显示FPS, 设置FPS的值,和加载一个场景。
上面的代码中有一句是创建一个场景对象
CCScene *pScene = HelloWorld::scene();
可以看出pScene对象被创建 调用的是HelloWorld这个类创建的。那么HelloWorld这个类是什么意思呢?
我将在下一个节再阐述一下我的观点 !
相关文章推荐
- [cocos2d-x菜鸟学习记录]解析示例helloWorld(下)
- cocos2d-x 菜鸟实习生学习篇(二)helloworld完全注释
- [cocos2d-x菜鸟学习记录]从构建环境到项目创建
- cocos2d-x 菜鸟实习生学习篇(二)helloworld完全注释
- cocos2d-x学习笔记17:记录存储2:SQLite基本使用
- cocos2dx-3.10学习之HelloWorld解析
- cocos2d-x学习笔记16:记录存储1:CCUserDefault 推荐
- Android菜鸟的学习记录。
- cocos2d-x 学习过程错误记录--Xcode+cocos2d-x 3.3 资源文件存放位置
- 菜鸟刚开始接触redis,记录一下学习的过程,以免忘记
- Cocos2d-x学习笔记(二) 永远的HelloWorld
- Delphi之通过代码示例学习XML解析、StringReplace的用法(异常控制 good)
- 【vue】vue组件化开发初体验-示例vue-loader-example学习记录
- cocos2d-x 菜鸟实习生学习篇(四) 锚点的理解
- Ferris教程学习笔记:js示例3.2 用parseInt解析数字,并求和
- 【Cocos2d-x3.0学习笔记 02】HelloWorld,你懂得
- cocos2d-x 菜鸟学习笔记七(界面控件之scrollView与tableView)
- Cocos2d-x示例代码学习(1)
- 和菜鸟一起学linux之dlna的学习记录
- Quick-Cocos2D-X学习(一)下载Quick-Cocos2D-X 并成功运行示例代码