Cocos2d-x 3.x开发 -- 导入Cocos Studio资源
2015-09-06 13:50
363 查看
自己:
Cocos2d-x的版本是3.6,Cocos Studio的版本是1.6。
添加的头文件:
以下为转载部分:
Cocos2d-x的版本是3.1,Cocos Studio的版本是1.5。
Cocos Studio目前的功能包括UI编辑器、动画编辑器、场景编辑器和数据编辑器。数据编辑器没有涉及到,就不说了。剩下三者中主要讲下导入UI编辑器的资源。
UI编辑器导出的文件包括一个.ExportJson文件,一个.plist文件和一个.png文件。Cocos Studio中文官网中说的是TouchGroup,英文官网中是UILayer,可是都已经不存在了。UILayer变成了Layer,现在也可以不创建Layer,直接加到场景上面。所以代码可以这样:
下面就可以用getChildByTag来获取组件了。不过getChildByTag貌似只能按照树的结构一层层照下来,显得很麻烦,而且不能按照名字来取。所以,现在可以用ui中的Helper直接从树中获取组件,用name或者tag。但seekWidgetByTag和seekWidgetByName的第一个参数是Widget类型,需要将pNode转成Widget类型。(从.ExportJson文件可以看出来,pNode本来就是一个Widget类型的树):
顺便附上绑定事件监听的代码,使看到的人免去寻找之苦。
touchEvent是自己写的方法。这个方法大致是如下用法,注意pSender和type的使用。
导入动画编辑器的动画的代码如下:
导入场景编辑器的场景的代码如下:
这个读出的Node貌似不能转成Widget,因为它不仅包括UI组件还有动画等资源。
获取组件和绑定事件监听可以这样写:
来源网址:http://blog.segmentfault.com/codecabin/1190000000593010
Cocos2d-x的版本是3.6,Cocos Studio的版本是1.6。
添加的头文件:
#include"cocostudio/CocoStudio.h" using namespace cocostudio;
以下为转载部分:
Cocos2d-x的版本是3.1,Cocos Studio的版本是1.5。
Cocos Studio目前的功能包括UI编辑器、动画编辑器、场景编辑器和数据编辑器。数据编辑器没有涉及到,就不说了。剩下三者中主要讲下导入UI编辑器的资源。
UI编辑器导出的文件包括一个.ExportJson文件,一个.plist文件和一个.png文件。Cocos Studio中文官网中说的是TouchGroup,英文官网中是UILayer,可是都已经不存在了。UILayer变成了Layer,现在也可以不创建Layer,直接加到场景上面。所以代码可以这样:
Node *pNode = GUIReader::getInstance()->widgetFromJsonFile("test.ExportJson"); this->addChild(pNode);
下面就可以用getChildByTag来获取组件了。不过getChildByTag貌似只能按照树的结构一层层照下来,显得很麻烦,而且不能按照名字来取。所以,现在可以用ui中的Helper直接从树中获取组件,用name或者tag。但seekWidgetByTag和seekWidgetByName的第一个参数是Widget类型,需要将pNode转成Widget类型。(从.ExportJson文件可以看出来,pNode本来就是一个Widget类型的树):
Button *button = (Button*)(ui::Helper::seekWidgetByName(pNode, "button"));
顺便附上绑定事件监听的代码,使看到的人免去寻找之苦。
button->addTouchEventListener(CC_CALLBACK_2(MainScene::touchEvent, this));
touchEvent是自己写的方法。这个方法大致是如下用法,注意pSender和type的使用。
void SingleMenuScene::selectEvent(Ref *pSender, Widget::TouchEventType type) { switch(type) { case Widget::TouchEventType::ENDED: GameSetting::Map map = GameSetting::Map::DEFAULT; if(pSender == defaultBtn) { map = GameSetting::Map::DEFAULT; } else if(pSender == snowBtn) { map = GameSetting::Map::SNOW; } Scene *game = BattleScene::createScene(map); TransitionScene *transition = TransitionFade::create(0.5, game); Director::getInstance()->replaceScene(transition); } }
导入动画编辑器的动画的代码如下:
CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo("Animation0.png","Animation0.plist","Animation.ExportJson"); CCArmature *armature = CCArmature::create("Animation"); armature->getAnimation()->playByIndex(0); armature->setScale(0.5f); armature->setPosition(ccp(visibleSize.width * 0.5, visibleSize.height * 0.5)); this->addChild(armature);
导入场景编辑器的场景的代码如下:
Node* pNode = SceneReader::getInstance()->createNodeWithSceneFile("scene.ExportJson"); this->addChild(pNode);
这个读出的Node貌似不能转成Widget,因为它不仅包括UI组件还有动画等资源。
获取组件和绑定事件监听可以这样写:
ComRender *render = (ComRender*)(pNode->getChildByTag(10010)->getComponent("GUIComponent")); Widget *widget = (Widget*)(render->getNode()); widget->addTouchEventListener(CC_CALLBACK_2(MainScene::touchEvent, this));
来源网址:http://blog.segmentfault.com/codecabin/1190000000593010
相关文章推荐
- Cocos2d-x中背景音乐和音效使用实例
- Cocos2d-x学习笔记之CCScene、CCLayer、CCSprite的默认坐标和默认锚点实验
- Cocos2d-x UI开发之CCControlPotentiometer控件类使用实例
- Cocos2d-x UI开发之文本类使用实例
- Cocos2d-x保存用户游戏数据之XML文件是否存在问题判断方法
- Cocos2d-x UI开发之菜单类使用实例
- Cocos2d-x UI开发之CCControlButton控件类实例
- Cocos2d-x学习笔记之世界坐标系、本地坐标系、opengl坐标系、屏幕坐标系
- Cocos2d-x UI开发之CCControlColourPicker控件类使用实例
- Cocos2d-x学习笔记之CCLayerColor层的使用实例
- Cocos2d-x Schedule定时器的使用实例
- Cocos2d-x中使用CCScrollView来实现关卡选择实例
- Cocos2d-x中CCEditBox文本输入框的使用实例
- cocos2d-x学习笔记之CCLayer、CCLayerColor、CCLayerGradient、CCLayerMultiplex场景层介绍
- Cocos2d-x UI开发之CCControlSlider控件类使用实例
- Cocos2d-x学习笔记之开发环境搭建
- Cocos2d-x学习笔记之Hello World!
- Cocos2d-x的内存管理总结
- Cocos2d-x 3.0中集成社交分享ShareSDK的详细步骤和常见问题解决
- Cocos2d-x入门教程(详细的实例和讲解)