cocos2d-x自定义按钮类

cocos2d-x自定义按钮类,第1张

概述#ifndef __ControlButton_H__ #define __ControlButton_H__ #include "cocos2d.h" #include "cocos-ext.h" USING_NS_CC; USING_NS_CC_EXT; //用于标识当前按钮的状态 typedef enum{ touch_begin, touch_down, touch_up, }tagFor #ifndef __Controlbutton_H__ #define __Controlbutton_H__ #include "cocos2d.h" #include "cocos-ext.h" USING_NS_CC; USING_NS_CC_EXT; //用于标识当前按钮的状态 typedef enum{ touch_begin,touch_down,touch_up,}tagFortouch; class Controlbutton :public CCNode { public: Controlbutton(); ~Controlbutton(); CREATE_FUNC(Controlbutton); //创建按钮,其中name_png为按钮的背景图片,button_Title为按钮图片上要显示的文字,num为文字的透明度0-100,0为透明 voID Createbutton(const char* name_png,const char* button_title="0",unsigned int num=0); //绑写按钮事件 voID BinonEven(); voID touchDownAction(CCObject* pSender,CCControlEvent event); voID touchdragenter(CCObject* pSender,CCControlEvent event); voID touchDragExit(CCObject* pSender,CCControlEvent event); voID touchDragInsIDe(CCObject* pSender,CCControlEvent event); voID touchDragOutsIDe(CCObject* pSender,CCControlEvent event); voID touchUpInsIDe(CCObject* pSender,CCControlEvent event); voID touchUpOutsIDe(CCObject* pSender,CCControlEvent event); voID touchCancel(CCObject* pSender,CCControlEvent event); //是否按下按钮 bool istouch; private: //按钮控件变量 CCControlbutton* controlBtn; }; #endif /////////////////////////////Controlbutton.cpp文件 #include "Controlbutton.h" Controlbutton::Controlbutton():controlBtn(NulL),istouch(false) { } Controlbutton::~Controlbutton() { } voID Controlbutton::Createbutton(const char* name_png,const char* button_Title,unsigned int num) { //得到按钮图片的大小 CCScale9Sprite* btn = CCScale9Sprite::create(name_png); cclOG("%f",btn->getContentSize().wIDth); cclOG("%f",btn->getContentSize().height); int png_height=static_cast(btn->getContentSize().height); int png_wIDth=static_cast( btn->getContentSize().wIDth); btn->release(); //要显示的图片大小 CCRect rect = CCRectMake(0,png_wIDth,png_height); //图片的大小 CCRect rectInsets = CCRectMake(1,1,1); //left,right,wIDth,height //按钮标题,Marker Felt为字体类型,png_height为字体高度 cclabelTTF *Title = cclabelTTF::create(button_Title,"Marker Felt",png_height-10); Title->setopacity(num);//设置可见度 //正常状态下的按钮图片 CCScale9Sprite *btnnormal = CCScale9Sprite::create(name_png,rect,rectInsets); //创建按钮 controlBtn = CCControlbutton::create(Title,btnnormal); this->addChild(controlBtn); //绑定事件 BinonEven(); } voID Controlbutton::BinonEven() { if(!controlBtn) return; controlBtn->addTargetWithActionForControlEvents(this,cccontrol_selector(Controlbutton::touchDownAction),CCControlEventtouchDown); controlBtn->addTargetWithActionForControlEvents(this,cccontrol_selector(Controlbutton::touchdragenter),CCControlEventtouchdragenter); controlBtn->addTargetWithActionForControlEvents(this,cccontrol_selector(Controlbutton::touchDragExit),CCControlEventtouchDragExit); controlBtn->addTargetWithActionForControlEvents(this,cccontrol_selector(Controlbutton::touchDragInsIDe),CCControlEventtouchDragInsIDe); controlBtn->addTargetWithActionForControlEvents(this,cccontrol_selector(Controlbutton::touchDragOutsIDe),CCControlEventtouchDragOutsIDe); controlBtn->addTargetWithActionForControlEvents(this,cccontrol_selector(Controlbutton::touchUpInsIDe),CCControlEventtouchUpInsIDe); controlBtn->addTargetWithActionForControlEvents(this,cccontrol_selector(Controlbutton::touchUpOutsIDe),CCControlEventtouchUpOutsIDe); controlBtn->addTargetWithActionForControlEvents(this,cccontrol_selector(Controlbutton::touchCancel),CCControlEventtouchCancel); } voID Controlbutton::touchDownAction(CCObject* pSender,CCControlEvent event) { istouch=true; } voID Controlbutton::touchdragenter(CCObject* pSender,CCControlEvent event) { } voID Controlbutton::touchDragExit(CCObject* pSender,CCControlEvent event) { } voID Controlbutton::touchDragInsIDe(CCObject* pSender,CCControlEvent event) { } voID Controlbutton::touchDragOutsIDe(CCObject* pSender,CCControlEvent event) { } voID Controlbutton::touchUpInsIDe(CCObject* pSender,CCControlEvent event) { istouch=false; } voID Controlbutton::touchUpOutsIDe(CCObject* pSender,CCControlEvent event) { } voID Controlbutton::touchCancel(CCObject* pSender,CCControlEvent event) { } .cpp中保留了一些按钮的事件,如果后头有需要或者你有什么需要可以直接拿去改,十分方便。 使用方法: 在要用到的地方加头文件#include "Controlbutton.h" 定义成员变量: Controlbutton* btn;//按钮控件变量 //添加按钮 btn=Controlbutton::create(); btn->Createbutton("bt.png"); btn->setposition(ccp(visibleSize.wIDth-50,50)); this->addChild(btn,2); 总结

以上是内存溢出为你收集整理的cocos2d-x自定义按钮类全部内容,希望文章能够帮你解决cocos2d-x自定义按钮类所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1066792.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存