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

cocos2dx 3.0 简单使用 CocoStudio UI Editor

2014-05-17 01:02 316 查看
想一想如今大三快结束了,面试笔试的经验几乎为零点零零好几(等等,为什么不是零),好吧,其实有过那么一两次,不过可气人的是公司竟然打着培训的幌子坑我们这种小年轻,太可恶了,要不是当初接待我们的那个小前台还是蛮不错的,长相甜美温柔可人,我就....(能怎样!

好吧,昨天菊花(菊花是谁?)说有公司来我们这学校招聘,一听就好激动的样子,做的是c++底层相关的一些东西,不管如何都要先去试试这水深不深啊,哈哈....然后结果你懂的,坑爹公司,竟然是小邓以前入职的公司,没错,就是一个月给你1000来块还要扣几百块钱的公司,然后几个月后一起给你的那种公司!笔试题是c的一些函数的使用,主要都是算法,我一看这不就坑了吗,最不会的就是算法了,哈哈,说多了一下子就暴露了菜鸟的水平,好吧,扯得有点远了......

------------------------------------------------------------------------------

回到正题

今天看了一下泰然网的一篇使用cocostudio的文章,好嘛,2.x的,3.0使用方法有点不一样,哈哈,然后无耻把这素材拿来用了

首先,先下载CocoStudio,然后安装,这个就不用说了。

然后下载图片素材 点这里下载下载后打开 CocoStudio,有四个Editor可以选,打开UI
Editor


新建Test项目,名字当然可以随意取啦,然后把下载后的图片资源直接拖到 资源面板下,像下面这样子



恩,然后泡杯牛奶,我们在看下面这张图,一个画布差不多相当于一个Layer,画布下面是对象结构,也就是这个Layer里面有神马东西,可以设定画布的分辨率,然后可以在画布上添加各种控件,神马button啊,复选框啊,左边可以直接拖,比如像下面这样子,看到中间那个button了木有,没错,就是被圈起来带点黄色的那个按钮,对应左边的“T
按钮” 控件,
右边分别是按钮的名字(很重要)和图片资源的三种状态(正常,按下,禁用),注意下,如果需要控件能被点击,需要把交互勾上

像下面这张图,其实就一张背景图 + 一张人物图片 + 上面4个button + 下面4个button,添加比较简单



然现在我们点击第一个按钮 “修改密码 ” ,需要弹出一个密码框,然后再添加一个画布Test_2,这张其实就是

3个button + 3 张图片 +3个输入框(添加在图片上)



添加完成后导出,使用大图就是将所有添加到一张png

导出后的东西长这样子



然后把这几个文件拷贝到resource下面

接下来就是在代码中加载使用了,记得添加cocostudio库和Gui库,还有引入头文件

#pragma once

#include "cocos2d.h"
#include "cocostudio/CocoStudio.h"
#include "ui/CocosGUI.h"

using namespace cocos2d;
using namespace cocostudio;
using namespace ui;

class CocosStudioTest : public Layer{
public:
CocosStudioTest(){}
~CocosStudioTest(){}
virtual bool init();
CREATE_FUNC(CocosStudioTest);

void btnEvent_pwd(Ref *pSender, TouchEventType type);
void btnEvent_close(Ref *pSender, TouchEventType type);
void btnEvent_confirm(Ref *pSender, TouchEventType type);
private:
Widget* UI;
Widget* UI_2;
Button* btn_pwd;
Button* btn_close;
Button* btn_confirm;
};


cpp文件

#include "CocosStudioTest.h"

bool CocosStudioTest::init(){

if(!Layer::init()){
return false;
}

//ui
UI = cocostudio::GUIReader::getInstance()->widgetFromJsonFile("cocosUI/Test_1.ExportJson");
this->addChild(UI);

//button pwd
btn_pwd = static_cast<Button*>(ui::Helper::seekWidgetByName(UI,"btn_pwd"));
btn_pwd->addTouchEventListener(this,toucheventselector(CocosStudioTest::btnEvent_pwd));

//ui_2
UI_2 = cocostudio::GUIReader::getInstance()->widgetFromJsonFile("cocosUI/Test_2.ExportJson");
UI_2->retain();

//button close
btn_close = static_cast<Button*> (ui::Helper::seekWidgetByName(UI_2,"Button_15"));
btn_close->addTouchEventListener(this,toucheventselector(CocosStudioTest::btnEvent_close));

//button confirm
btn_confirm = static_cast<Button*> (ui::Helper::seekWidgetByName(UI_2,"btn_confirm"));
btn_confirm->addTouchEventListener(this,toucheventselector(CocosStudioTest::btnEvent_confirm));

}

void CocosStudioTest::btnEvent_pwd(Ref *pSender, TouchEventType type){
switch (type)
{
case TouchEventType::TOUCH_EVENT_ENDED:
this->addChild(UI_2);
}
}

void CocosStudioTest::btnEvent_close(Ref *pSender, TouchEventType type){
switch (type)
{
case TouchEventType::TOUCH_EVENT_ENDED:
this->removeChild(UI_2);

}
}

void CocosStudioTest::btnEvent_confirm(Ref *pSender, TouchEventType type){
switch (type)
{
case TouchEventType::TOUCH_EVENT_ENDED:
this->removeChild(UI_2);
}
}


运行一下,哈哈



恩,大概就这样子
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: