加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用Cocos Studio中的按钮

发布时间:2020-12-14 20:50:21 所属栏目:百科 来源:网络整理
导读:在没有Cocos Studio的时候通常使用菜单作为按钮,在Cocos Studio中不用这么麻烦了,Cocos Studio中自带了一个按钮控件,使用Cocos Studio自带的按钮控件可以直接在界面上添加按钮 首先启动Cocos Studio,并且创建好一个C++项目 向Cocos Studio中添加一张图片

在没有Cocos Studio的时候通常使用菜单作为按钮,在Cocos Studio中不用这么麻烦了,Cocos Studio中自带了一个按钮控件,使用Cocos Studio自带的按钮控件可以直接在界面上添加按钮

首先启动Cocos Studio,并且创建好一个C++项目

向Cocos Studio中添加一张图片用作窗口的背景图片,并且按照下面的方法将图片添加到MainScene场景中

按照下面演示的方法在场景中添加一个按钮

按照面展示的操作方式删掉按钮上的文字

设置按钮正常状态时的图片

选中按钮->单击鼠标右键->设置按钮样式->正常状态

选择按钮正常状态下的图片,选择一张图片,并且单击打开

设置好按钮正常状态下图片后的效果

设置按钮按下状态时的图片

选中按钮->单击鼠标右键->设置按钮样式->按下状态

选择按钮按下时的图片,选择一张图片,并且单击打开

设置完成后单击下面标注的按钮出现一个展示效果的界面

展示效果

发布项目,将项目发布到Visual Studio,并且将HelloWorldScene.h中的代码改成下面的代码

#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__

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

USING_NS_CC;

//使用动画相关的类引用的命名空间
using namespace cocostudio::timeline;

//使用UI引用的命名空间
using namespace cocos2d::ui;


class HelloWorld : public Layer
{
public:
	CREATE_FUNC(HelloWorld);

	static Scene* createScene();
	bool init();

	//按钮响应函数
	void Option(Ref* pSender,Widget::TouchEventType type);
};


#endif // __HELLOWORLD_SCENE_H__

将HelloWorldScene.cpp中的代码改成下面的代码

#include "HelloWorldScene.h"

Scene* HelloWorld::createScene()
{
    auto scene = Scene::create();
    
    auto layer = HelloWorld::create();

    scene->addChild(layer);

    return scene;
}


bool HelloWorld::init()
{
    if(!Layer::init())
    {
        return false;
    }
    
	//加载Cocos Studio编辑好的资源
    auto rootNode = CSLoader::createNode("MainScene.csb");
    addChild(rootNode);

	//通过按钮的名字获得按钮
	Button* button = dynamic_cast<Button*>(rootNode->getChildByName("Button"));
	
	//添加监听
	button->addTouchEventListener(CC_CALLBACK_2(HelloWorld::Option,this));
	
    return true;
}


//按钮响应函数
void HelloWorld::Option(Ref* pSender,Widget::TouchEventType type)
{
	switch(type)
	{
		//按下按钮
		case Widget::TouchEventType::BEGAN:
		{
			log("Down !");
		}
		break;

		//松开按钮
		case Widget::TouchEventType::ENDED:
		{
			log("Up !");
		}
		break;

		//在按钮上移动
		case Widget::TouchEventType::MOVED:
		{
			log("Move !");
		}
		break;

		//取消按钮
		case Widget::TouchEventType::CANCELED:
		{
			log("Cancel !");
		}
		break;
		default:
		break;
	}
}

执行结果:

当按下按钮时会打印Down !

当松开按钮时会打印Up !

当按下按钮并且在按钮上滑动时会打印 Move !

单击此处下载资源和代码

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读