解析cocos2d test项目(一)

来源:互联网 发布:男人热恋期的举动知乎 编辑:程序博客网 时间:2024/06/05 07:09

啊,我这个坑也开始接触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


0 0