zoukankan      html  css  js  c++  java
  • 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);
    	}
    }

    运行一下,哈哈




    恩,大概就这样子


  • 相关阅读:
    迭代器、生成器、装饰器(转)
    Python小数据池
    接阿里云oss有感
    VSCode快捷键
    前端跨域调请求 nginx反向代理
    Git生成密钥
    【westorm系列之二】配置格式化
    钉钉安卓端无法渲染数据
    express 写接口
    js正则匹配身份证号 有坑
  • 原文地址:https://www.cnblogs.com/fzll/p/3954601.html
Copyright © 2011-2022 走看看