您的位置:首页 > 移动开发 > Cocos引擎

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

2014-05-05 18:05 495 查看
一 创建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 <iostream>

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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐