cocos2dx 3.0结合cocostudio创建界面UI以及特效

一 创建UI
在layer的init函数里面添加下面代码
Layer *_uiLayer;

Layout *_widget;


_uiLayer = Layer::create();
addChild(_uiLayer);
_widget = dynamic_cast(cocostudio::GUIReader::getInstance()->widgetFromJsonFile("logo1/logo1.json"));
_uiLayer->addChild(_widget);



二 创建特效
在layer的init函数里面添加下面代码

ArmatureDataManager::getInstance()->addArmatureFileInfo("loading/loading.ExportJson");
Armature * armatureCombo =Armature::create("loading");
armatureCombo->getAnimation()->playWithIndex(0);
//armatureCombo->setVisible(false);
this->addChild(armatureCombo);
注意: 1 其中Armature::create("loading")里面字串"loading"是"loading/loading.ExportJson"这个json文件里面最上面的name对应的值。
2 使用cocostudio导出的UI和特效,需要添加一些头文件和命名空间
【cocos2dx 3.0结合cocostudio创建界面UI以及特效】
#include "CocosGUI.h"
#include "extensions/cocos-ext.h"
#include "cocostudio/CocoStudio.h"

#include "editor-support/cocostudio/CCSGUIReader.h"
#include


USING_NS_CC;
using namespace cocos2d::ui;
using namespacecocos2d::extension;
using namespace cocostudio;
否则会提示某些类型找不到的错误。

3 使用cocostudio导出的文件来生成UI,可能会遇到的问题:
问题1 :
在真机上,游戏界面比手机屏幕大超出了手机屏幕或者比手机屏幕小
原因:
这个是因为创建UI时,cocostudio导出的json文件顶部的设计宽高比如为
"designHeight": 960,
"designWidth": 640,
跟你手机屏幕大小不一样。
解决方法:
找到AppDelegate.cpp文件,在applicationDidFinishLaunching()函数里面


auto glview = director->getOpenGLView();
if(!glview) {
glview = GLView::create("My Game");
director->setOpenGLView(glview);
}
的后面添加

glview->setDesignResolutionSize(640,960, ResolutionPolicy::EXACT_FIT);
其中参数1和2分别为json文件里面的designWidth和designHeight。

    推荐阅读