cocos2dx-3.x test 启动项解析
对于cocos2dx初学者来说,引擎内带的案例test是一个很有用、很值得琢磨的东西,里面基本包含了cocos2dx的所有用法。 运行后出现如下的窗口。那如何进入我们想要进入的模块场景呢?例如运行一开始则进入Camera3DTest 这个场景。
首先分析看看AppDelegate.cpp这个文件: 在bool AppDelegate::applicationDidFinishLaunching()函数中有下面语句: auto scene = Scene::create(); 生成TestController层,添加到自动释放池中,若未被其它节点引用则下一帧被释放(-1)。 添加到scene中,并运行此场景。
转到controller.cpp中, 先看看这个结构体 typedef struct _Controller{ std::function<TestScene*()> callback,类似一个函数指针,是C++11新增的一个泛函数,类似这样 TestScene* callback() { do your something; } 之后定义一个Controller g_aTestNames[],这样的结构数组,存储对应模块信息。 再看其构造函数中的一段代码: // add menu items for tests 就是定义了文本标签菜单,其回调函数CC_CALLBACK_1(TestController::menuCallback,this)); void TestController::menuCallback(Ref * sender) 其中的idx就是模块的id号,红色的那部分就是在前面介绍的std::function的函数。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |