cocos2dx 3.0 简单使用 CocoStudio UI Editor

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


好吧,昨天菊花(菊花是谁?)说有公司来我们这学校招聘,一听就好激动的样子,做的是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);
	}
}

运行一下,哈哈




恩,大概就这样子


posted @ 2014-05-17 01:02  会做菜的老狼  阅读(1136)  评论(0编辑  收藏  举报