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

一 创建UI

在layer的init函数里面添加下面代码

Layer *_uiLayer;

 Layout *_widget;


    _uiLayer = Layer::create();

    addChild(_uiLayer);

    _widget = dynamic_cast<Layout*>(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和特效,需要添加一些头文件和命名空间

#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。


你可能感兴趣的:(cocos2d-x)