cocos2d-x加载cocostudio

1、cocos2d-x加载cocostudio一定要用对应的版本,不然很是麻烦

1)、先说说coco2d-x3.0和cocostudio1.3.0.1UI

2)、先用cocostudio导出工程,这个没什么太多可说,美术的事情,不过要注意像button那样的,要选中交互。

3)、将导出的资源放入cocos2d-x资源目录中

4)、由于cocos2d-x3.0工作目录是放在其它地方,所以要引用一些库
libCocoStuido、libGUI和libExtension三个库

5)、他们存在路径不同分别在
cocos/editor-support/cocostudio/proj.win32/libCocoStuido
、cocos2d\cocos2d-x-3.0\cocos\ui\proj.win32


cocos2d\cocos2d-x-3.0\extensions\proj.win32

6)、添加库方法:在“解决方案资源管理器”中找到整个解决方案,右击,选择“添加”->“现有项目”。在弹出的对话框中找到“项目目录/cocos2d/cocos/editor-

support/cocostudio/proj.win32/libCocoStuido”点击确定,即可加入到解决方案中

7)、找到我们的目标项目“Test”右击,选择“引用...”。在弹出的属性页中点选下面的“添加新引用”。在弹出的子级对话框中选择我们需要的库,点击确

定,即可添加项目对库的引用。

8)、添加包含目录:
右击项目->属性->配置属性->c/c++->常规->加入包含目录“$(EngineRoot)cocos\editor-support”和“$(EngineRoot)cocos”。

9)、引入头文件 #include
"cocostudio/CocoStudio.h"

10)、代码:

auto uiLayer =
cocostudio::GUIReader::getInstance()->widgetFromJsonFile("DemoLogin/DemoLogin.json");
        addChild(uiLayer);

11)、设置button按钮监听
引用UIWidget添加命名空间uUSING_NS_CC; sing namespace ui;

12)、代码

uiLayer->getChildByName("login_Button")->addTouchEventListener(this,
toucheventselector(HelloWorld::touchCallBack));

void
HelloWorld::touchCallBack(Object* obj,TouchEventType type)

2、再说说cocos2d-x3.0加载cocostudio1.3.0.1的场景

1)、头文件和链接库如上所示,如果已经加载那就不用再加载了

2)、用cocostudio生成场景文件,拷贝到cocos2d-x资源目录下,注意不要把这些文件自己建立的次目录下

3)、加载整个文件到场景中使用 cocostudio::SceneReader

auto node =
cocostudio::SceneReader::getInstance()->createNodeWithSceneFile("publish/FightScene.json");
        addChild(node);

4)、播放动画

auto child =
node->getChildByTag(10005); 
          auto pLoadRender =
(cocostudio::ComRender*)(child->getComponent("CCArmature")); 
          auto pArmature =
(cocostudio::CCArmature*)(pLoadRender->getNode());
          pArmature->getAnimation()->playByIndex(1);

5)、获取场景文件中的精灵

auto pLoadRender1 =
(cocostudio::ComRender*)(node->getChildByTag(10011)->getComponent("CCSprite"));
        Sprite *ssss =
(Sprite*)(pLoadRender1->getNode());

6)、场景中的节点,可以通过getchind...方式一层层获取。
node->getChildByTag(10007)->getChildByTag(10010)->getComponent("CCSprite")

3、再说一下到Android平台移植问题

1、android 还需在jni/android.mk下重添加引用库cocostudio

2、添加LOCAL_WHOLE_STATIC_LIBRARIES
+= cocostudio_static和$(call import-module,editor-support/cocostudio)

以下是老版本

1、首先用cocostudio导出工程(在此说明一下,cocostudio1.2.0.1导出的UI能在cocos2d-x2.2中使用,但是不能在cocos2d-x2.2.3中使用,cocostudio1.2.0.1导出的骨骼动画能在cocos2d-x2.2.3中使用但是不能在cocos2d-x2.2中使用,你说操蛋不,所以使用cocostudio1.2.0.1建议用cocos2d-x2.2.2)

2、UILayer与UIWidget :

UILayer
继承cocos2d-x的CCLayer,UILayer可以通过addWidget添加UIWidget。下面该熟悉了吧

3、 UIWidget* view =
CCUIHELPER->createWidgetFromJsonFile("qq/NewProject_1.json"); UILayer *ui =
UILayer::create(); ui->addWidget(view);

UITextButton *button =
dynamic_cast<UITextButton*>(ui->getWidgetByName("Button_28"));  //根据名称获取button

button->addTouchEventListener(this,SEL_TouchEvent(&HelloWorld::menuCallback));

//下面是cocos2d-x2.2的写法
//button->addReleaseEvent(this,coco_releaseselector(LoginScene::tryGame)); 
//添加时间回调监听

this->addChild(ui);

4、void HelloWorld::menuCallback(CCObject* pSender,TouchEventType
type){}

时间: 2024-10-30 01:01:23

cocos2d-x加载cocostudio的相关文章

CocoStudio使用笔记1:cocos2dx3.4加载CocoStudio导出的csb文件

一直以来都是用手写代码来做cocos2dx的游戏界面.看朋友一个星期一个游戏的速度,很让我眼红.他们公司使用的是CocosBuilder做界面.对于CocosBuilder 在他的推荐下我也研究了一个星期,网上的教程太乱,而且坑太多,每个教程的操作还不一样,按照教程来还是搞不定,对此我决定要一点点的来填坑.而本篇笔记是记录下cocostudioV2.3.2版本生成的csb文件在cocos2dx3.4中的运用.对于cocosbuilder的笔记过几天在整理,爬坑爬的心累. Cocostudio已经

Cocos2d-x3.0 加载Cocostudio的UI后,按钮无法点击的解决方法

最近发现不少朋友都遇到这个问题,用Cocostudio的UI编辑器创建好UI后,在代码中加载UI,然后给按钮(Button)添加点击监听事件,发现无论如何都点击不了按钮,没有任何反应. 或者,往按钮的下面一些位置点击,却发现按钮被点击了,点击坐标的位置明显和按钮的位置有偏差. 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址: http://www.benmutou.com/blog/archives/1027 文章来源:笨木头与游戏开发 如果你也遇到这样的问题,不妨进行一个简单的

cocos2d-x3.0.1,加载cocostudio ui编辑器导出的json文件出现&quot;Buffer is too small&quot; &amp;&amp; 0解决方案

刚到这个公司,开始进行cocos2d-x的真正项目开发,为了以后能够更好扩展,改动不大,决定使用3.X版本开发,而且使用ui编辑器.在导入的时候,今天遇到一个问题,Buffer is too small,搜了不少,但是都没有解决的方案,最后查到一个错误诱因,是因为ui中使用了label所致,于是我试了试,发现还真是label导致的问题,每次运行异常都发生在CCDevice.cpp的 bool setFont(const char * pFontName = NULL, int nSize = 0

实习小白::(转) Cocos2d-x 3.0 开发(十六)cocos2dx-3.0beta版建立新项目并加载CocoStudio导出文件

1.概述 与alpah版相比,beta版中更改了创建的脚本,可以自定义项目的目录,接下来我们看看.先上图: 2.项目创建 找到 cocos2dx根目录/tools/project-creator/create_project.py文件,双击运行即可.如果未安装python 环境,则需要下载安装.脚本运行起来,会显示一个图形界面,用以设置相应的项目名称.Android包名和文件路径.设置好后,点击下面的create按 钮创建项目,创建成功后会弹出如图所示提示框. 这样我们就成功创建了一个项目,找到

cocos2dx 3.x(加载cocostudio进度条)

1 // 2 // MyLoagingScene.hpp 3 // My 4 // 5 // Created by work on 16/10/13. 6 // 7 // 8 9 #ifndef MyLoagingScene_hpp 10 #define MyLoagingScene_hpp 11 12 #include <stdio.h> 13 #include "cocos2d.h" 14 #include <editor-support/cocostudio/C

在项目代码中加载cocostudio导出的动画并循环播放

需要在代码中引入#include "cocostudio/CocoStudio.h" using namespace cocostudio; ArmatureDataManager::getInstance()->addArmatureFileInfo("fishes/blowFish/Blowfish.ExportJson"); Armature* armature = Armature::create("Blowfish"); arma

Cocos2d之Texture2D类详解之将文件加载成Texture2D对象

一.声明 笔者以cocos2d框架cocos2d-x-3.3rc0版本的源码做分析.本文为笔者原创,允许转载和分享,只要注明文章出处即可. 二.简介 Texture2D类简介 Texture2D类允许开发者用图像.文本信息和简单的数据来创建OpenGL2D纹理.被创建的纹理拥有两个维度.根据开发者创建Texture2D对象方式的不同,实际图像的尺寸可能比生成的纹理的尺寸要小,而且纹理的内容是倒置的. 像素格式 在计算机图形学中,人们用每个像素在内存中的总位数以及分别存储红.蓝.绿和alpha(阿

最新版本cocos2d&#173;2.0&#173;x&#173;2.0.2使用新资源加载策略!不再沿用-hd、-

 前段时间cocos2dx更新了最新版本cocos2d-2.0-x-2.0.2,也从这个版本开始对于资源加载与管理都改变了策略. 在之前的加载方式都是通过沿用与cocos2d-iphone一样的加载资源方式,对于图片名后添加-hd,-ipad,-ipadhd方式,当用户开启项目的高清视网膜后就可以默认寻找对应的资源.但是从cocos2d-2.0-x-2.0.2版本开始,资源加载策略不在如此了.对跨平台整合不清楚的请看cocos2dx最新2.x版本跨平台整合NDK+Xcode 最新资源加载策略

关于加载cocos2dx动画问题,跳转页面后回来不显示,报错找不到资源

用cocostudio做场景和动画,确认文件目录和文件都存在,在屏幕上显示不了. 关于 cocos2d: Cann't find CCSpriteFrame with elf3.png. Please check your .plist file cocos2d: Cann't find CCSpriteFrame with elf4.png. Please check your .plist file cocos2d: Cann't find CCSpriteFrame with elf2.p