一 创建UI
在layer的init函数里面添加下面代码
Layer *_uiLayer;
Layout *_widget;
_uiLayer = Layer::create();
addChild(_uiLayer);
_widget = dynamic_cast
_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。
推荐阅读
- cocos2d-x|获取系统毫秒时间值
- 创建多个工程命令 create_project.py
- cocos2d-x|Cocos2dx基础使用相关面试题
- cocos2d-x|cocos2dx面试题
- 动态更换plist资源时调用清空缓存的函数
- 游戏开发|基于cocos2d-x引擎的角色控制器
- please define NDK_ROOT
- Cocos2d-x 3.9教程(10.使用CocosStudio的UI编辑器从UI文件中加载布局和控件)
- cocos2d-x 一道简单面试题,触摸事件的重新分发