最近学习Cocos2D-x中,正好在amazon看到了钟迪龙的Cocos2d-x 3.x游戏开发之旅一书,毫不犹豫的掏银子买下开始学习。
其中学习到配合Cocos Studio设计UI并加载一节时,由于书中使用的是Cocos2d-x版本是3.0,我使用的是3.6,CocosStudio书中的版本是1.4,而现在的版本是2.3,所以发布资源的格式有所改变,默认发布的资源格式是csb,cocos导入的方式也有所不同。
直接使用书中的方式是无法编译成功的,于是百度之,找到了导入csb格式的方法。
以下代码是沿用书中代码修改而成,HelloWorldScene.h文件头部添加如下:
#include "ui\CocosGUI.h" #include "editor-support\cocostudio\CocoStudio.h" using namespace cocos2d::ui; using namespace cocostudio;
HelloWorldScene.cpp文件中init函数内部引用UI文件的方式如下:
Node* main = CSLoader::createNode("MainScene.csb"); this->addChild(main);
此时按Ctrl + F5编译运行,就可以成功导入UI了。
还没有结束,此时引用UI内部控件的方式也改变如下:
Button* dBtn = static_cast<Button*>(main->getChildByName("dBtn")); dImg = static_cast<ImageView*>(main->getChildByName("dImage")); dBtn->addTouchEventListener(this, toucheventselector(HelloWorld::onTouch));
其中getChildByName中的参数就是在CocosStudio中设定的控件name,这样就可以正确的引用控件并添加事件了(onTouch为自定义Touch回调,读者自行添加,书中也有阐述,此处不表)