cocos2d-C++ 学习UI控件(一)之 Button|CheckButton

最近在一家公司实习,自己就自学了cocos2dx,花了两个星期把cocos2dx-c++学了一遍,做了4个游戏。之后开始学习quick-cocos和cocos-lua,单当我在学的时候发现,自己其实存在很多问题,主要体现在不熟练。加之quick和cocos-lua的两套API,把我的兴趣越高越差。所以我决定在深入学习cocos2dx-c++并且把它的搞透彻了,熟练了,再转cocos-lua,其实cocos-lua的API和cocos-c++的很像。

后来我去问了公司一个做cocos2dx的同事,他的意思是把基础常用的熟练了,到时候做游戏遇到比较复杂的模块再去研究。所以我决定先把一些常用的基础的,在用一遍,并且熟悉API。当然也作为一个笔记,在我日后用到的时候方便查找。
其实Button和CheckButton 用cocos2dx的菜单类很好实现,当我现在讲的是cocos2dx的UI类中的
-------------------------------------------------------------------基础UI的Button
void  HelloWorld::addButton()
{
	//auto button = cocos2d::ui::Button::create("button/Button01.png", "button/Button01Pressed.png", "button/Button01Disabled.png");  //使用图片创建Button
	auto button = cocos2d::ui::Button::create();   //创建一个Button,纹理贴图后面添加
	//button->loadTextures("button/Button01.png", "button/Button01Pressed.png", "button/Button01Disabled.png");   
	button->loadTextureNormal("button/Button01.png");            
	button->loadTexturePressed("button/Button01Pressed.png");
	button->loadTextureDisabled("button/Button01Disabled.png");

	button->setPressedActionEnabled(false); //设置启用按钮被按下时的缩放操作

	button->setScale9Enabled(true);   //打开scale9 可以拉伸图片

	button->setTitleText("BUTTON");     //设置按钮标题,还有其他函数可以设置颜色,字体大小

	button->setOpacity(100); //继承自node,设置node透明度,0完全透明

	button->addTouchEventListener(CC_CALLBACK_2(HelloWorld::touchEvent,this));    //设置按钮的触摸事件和作用目标(继承自Widget)

	button->setContentSize(Size(100, 40));     //设置按钮大小,必须setScale9Enabled(true),不然没有用
	button->setPosition(Vec2(400, 100));
	this->addChild(button,1);

}
//按钮的触摸事件回掉函数
void HelloWorld::touchEvent(Ref *pSender, cocos2d::ui::Widget::TouchEventType type)
{
	switch (type)
	{
	case cocos2d::ui::Widget::TouchEventType::BEGAN:log("BEGAN");                   //按钮按下的
		break;
	case cocos2d::ui::Widget::TouchEventType::MOVED:log("MOVED");                  //按钮按下并移动
		break;
	case cocos2d::ui::Widget::TouchEventType::ENDED:log("ENDED");                  //按钮结束按下的
		break;
	case cocos2d::ui::Widget::TouchEventType::CANCELED:log("CANCELED");           //按钮按下取消
		break;
	default:
		break;
	}
}
-------------------------------------------------------------------基础UI的 CheckButton
void  HelloWorld::addCheckBox()
{
	auto checkbox = CheckBox::create("button/CheckBoxButton2Off.png", "button/CheckBoxButton2On.png", TextureResType::LOCAL);  //使用选中和取消图片创建复选框
	checkbox->setPosition(Vec2(200, 100));
	checkbox->addEventListener(CC_CALLBACK_2(HelloWorld::CheckButtontouchEvent,this));      //注册一个回调函数,它将在复选框被选中或者取消选中时被调用。
	this->addChild(checkbox, 1);
}

void HelloWorld::CheckButtontouchEvent(Ref* pSender, CheckBox::EventType type)
{
	switch (type)
	{
	case CheckBox::EventType::SELECTED: log("checkbutton   selected");
			break;
	case CheckBox::EventType::UNSELECTED:log("checkbutton   unselected");
			break;
	default:
		break;
	}
}


 
 
下一节我介绍一下使用菜单类实现这两个控件
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值