代码下载链接
http://download.csdn.net/detail/yincheng01/6864893
解压密码:c.itcast.cn
main函数内容
#include "main.h"
#include "AppDelegate.h"
#include "CCEGLView.h"
USING_NS_CC;
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
// create the application instance
AppDelegate app;
CCEGLView* eglView = CCEGLView::sharedOpenGLView();
eglView->setViewName("CrazyMario");
eglView->setFrameSize(480, 320);
return CCApplication::sharedApplication()->run();
}
本文以win32的main函数为模板,该部分代码是win32平台特有,不可移植。
_tWinMain是win32程序的主函数,四个参数与cocos2dx关系不大,忽略。
1)定义app对象 AppDelegate app;
AppDelegate是CCApplication的子类,定义的app对象的地址,最后将被保存到CCApplication的静态变量中
可以使用静态函数CCApplication::shareApplication()获取该app的指针。
CCApplication详细信息参见这里:
2)创建窗口 CCEGLView* eglView = CCEGLView::sharedOpenGLView();
这句代码创建窗口,代码运行到这里只是创建了一个窗口罢了
eglView->setViewName("CrazyMario");是设置窗口的名字
eglView->setFrameSize(480, 320);是设置窗口的大小。对于不同的设备分辨率不同,窗口大小也不同,会导致很多问题,解决方法见这里
对于CCEGLView类的学习参见这里
3)运行程序CCApplication::shareApplication()->run();进入程序循环
这个代码要注意以下几点:
a.CCApplication::sharedApplication()返回的指针,就是app的地址,因为app是单例,所以一旦定义了一个对象,就不会再建立其他对象。
b.进入消息处理死循环之前,会先调用applicationDidFinishLaunching虚函数,该虚函数在AppDelegate中进行了重载,所以在进入消息处理之前,AppDelegate的applicationDidFinishLaunching函数会先被调用
applicationDidFinishLaunching函数将在下一篇博文中详细描述。