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

来源:互联网 发布:java常用服务器有哪些 编辑:程序博客网 时间:2024/05/10 22:53

最近在一家公司实习,自己就自学了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");  //使用图片创建Buttonauto 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 2
原创粉丝点击