原创作品,转载请标明:http://www.jb51.cc/article/p-uyectmud-ep.html
虽然cocos2d-x v3.0 alpha版已经出来了,也改进了不少,有兴趣的可以去尝尝鲜。因为后面可能还会配合cocoStudio写一下博客,而现在v1.0.0.0版本需要配合cocos2d-x v2.2.0使用。所以这里选择了V2.2.0版的cocos2d-x。
一个新的东西,从头开始吧!从HelloWorld出发看一下一个cocos2d-x游戏是怎么跑起来的。先看看它的结构。
1.main函数
还是原来配方还是熟悉的味道。。。霸气的main函数依然是程序的入口点:
- //main.cpp
- intAPIENTRY_tWinMain(HINSTANCEhInstance,
- HINSTANCEhPrevInstance,
- LPTSTRlpCmdLine,87); font-weight:bold; background-color:inherit">intnCmdShow)
- {
- UNREFERENCED_PARAMETER(hPrevInstance);//该宏用于通知编译器不用检测变量是否使用,如果你喜欢用LV4级的警告。
- UNREFERENCED_PARAMETER(lpCmdLine);
- //createtheapplicationinstance
- AppDelegateapp;//创建AppDelegate实例
- CCEGLView*eglView=CCEGLView::sharedOpenGLView();//获取CCEGLView的单一实例,因为还未创建,所以这里会进行创建
- eglView->setViewName("HelloCpp");//设置eglView属性
- eglView->setFrameSize(2048,1536);
- eglView->setFrameZoomFactor(0.4f);
- returnCCApplication::sharedApplication()->run();//调用run运行程序
- }
(1)AppDelegate继承于CCApplication,是整个游戏的程序类,如果有用过MFC的就很清楚,类似于CxxxApp。
(2)CCEGLView封装了使用openGL作为显示底层API的一个基本的Windows窗体的创建和控制。
可以简单的认为,一个控制了程序的逻辑,而另一个负责游戏的显示。
2.CCEGLView类
我们先看看上一步的CCEGLView::sharedOpenGLView()做了什么。