啊,我这个坑也开始接触cocos2d游戏引擎了,好了ok,废话不多说
首先,拿来test项目我整个人是懵逼的,wtf?这他娘的什么玩意,老子不学了。那么多文件,编译就编译老半天。
算了,饭要一口一口吃。我后来发现cocos2d也是有个疑似main函数的玩意大概就是这样。。。
#include "main.h"
#include "AppDelegate.h"
USING_NS_CC;
int WINAPI _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
// create the application instance
AppDelegate app;
return Application::getInstance()->run();
}
哦,天哪,我一看源代码就头疼。诶?这个怎么这么短。大概通过我个人的玄学理解,
int WINAPI _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)这个参数到底是干啥的,我应该一时还管不到。USING_NS_CC;应该是使用某个明明空间之类的,去搜索了一下UNREFERENCED_PARAMETER这个宏大概是说声明某个参数,如果不用就不生成关于它的任何代码。好像也不是很关键,至少咱现在关心不了。姑且列为没用。
AppDelegate app;这句我知道,应该调用了默认构造函数,而且这个文件我们一下就找到了,挺好找的。
return Application::getInstance()->run();应该是获得一个实例并构造,好大概这么研究一番整个main函数变成了这个样子
#include "main.h"
#include "AppDelegate.h"//引入一些库函数啦,这个别说你不会
USING_NS_CC;//使用某个cocos2d 特定的命名空间,关心的去查找一下定义
int WINAPI _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)//鬼知道这些参数是什么,我现在不关心,小子你等我出山之后再来收拾你
{
UNREFERENCED_PARAMETER(hPrevInstance);//大概这个是hPrevInstance这个变量如果没给的话,关于它的代码都不生成,妈个鸡,这个也先搁置
UNREFERENCED_PARAMETER(lpCmdLine);
// create the application instance
AppDelegate app;//这里据我对于C++的了解,应该是调用了无参构造函数,不过我们还不知道AppDelegate是个什么玩意?
return Application::getInstance()->run();//这里应该是运行了程序实例,不过返回值是啥?应该是表示程序运行状态的,然后返回给系统的吧
}
好了,这里总结问题
需要马上搞懂的问题:
1AppDelegate 是个什么玩意,它的无参构造函数干了啥
2return Application::getInstance()->run();返回值是谁给的,大概是啥,表示神马
暂时搁置不太着急的问题(但如果你有梦想,不能忘记这些问题):
1int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine,int nCmdShow)这些参数是干啥的,有什么用
2UNREFERENCED_PARAMETER(hPrevInstance);这个宏到底是啥,我还是懵逼的,这几个参数为什么要调用这个宏,不这么做会怎么样,我能用这个干啥
3main函数真的是第一个调用的吗,我们目前默认了这种状况,但C++我还真有点拿不准,之前会不会有什么很重要的东西需要我们知道
好啦,main函数就这样,下一章我们去看看AppDelegate