HelloWorld工程里面包含的东西
新建立的 helloworld 工程包含主要 AppDelegate, HelloWorld 类和main函数,下面简单记录一下学习的一些了解。
main函数
main函数(main.cpp),这个相当的熟悉就是一个程序的入口,当然 main.cpp 中main函数也是整个工程的主入口,就是做一些工程启动的参数,下面是我认为比较核心的代码:
// create the application instance
AppDelegate app;
CCEGLView* eglView = CCEGLView::sharedOpenGLView();
eglView->setFrameSize(480, 320);
int ret = CCApplication::sharedApplication()->run();
AppDelegate 类是项目委派类,主要是是项目控制(下面会介绍),当然你也自己定义自己的委派类。setFrameSize是设置窗口大小,这里是480 * 320,然后就是启动项目了,都很好理解。
AppDelegate类
AppDelegate类是整个项目的控制类,包括项目启动,项目变更(如游戏中来电话)等状态改变来工程运行的状态。
包括的函数有:
AppDelegate() // 构造函数
~AppDelegate() // 析构函数
applicationDidFinishLaunching() // 项目加载完成后处理的事情
applicationDidEnterBackground() // 项目进入后台时候处理的事情
applicationWillEnterForeground() // 项目从后台重新回到前台处理的事情
在 applicationDidFinishLaunching() 方法中我们又可以显示我们要展现的场景,例如
// turn on display FPS
pDirector->setDisplayStats(true);
// set FPS. the default value is 1.0/60 if you don't call this
pDirector->setAnimationInterval(1.0 / 60);
// create a scene. it's an autorelease object
CCScene *pScene = HelloWorld::scene();
// run
pDirector->runWithScene(pScene);
就是展现我们 helloworld 中定义的 scene,同样的,如果你自己定义了 scene 的话,修改这里就可以在项目运行起来第一个加载你的自定义scene。
HelloWorld类
HelloWorld 类的结构如下:
class HelloWorld : public cocos2d::CCLayer
{
public:
virtual bool init();
static cocos2d::CCScene* scene();
void menuCloseCallback(CCObject* pSender);
CREATE_FUNC(HelloWorld);
};
virtual bool init() 提供初始化操作,但是要在项目中加入 CREATE_FUNC(HelloWorld); 这样的宏调用,HelloWorld 是类名。或者你重写CCLayer中一下函数也可以初始化 onEnter,onExit 也是可以的。
在 HelloWorld 的 init 中,包括初始化了 CCMenu(菜单), CCLabelTTF(字符串),CCSprite(精灵)等操作,而 HelloWorld::scene() 中则创建一个在 init 初始化好的 scene。
ps:以上是个人的学习历程,如果不对,请不吝指正。
--> 下一篇:如何编译自己的项目(从win32交叉编译到android)