自定义ToggleButton
发布时间:2020-12-14 17:08:01 所属栏目:百科 来源:网络整理
导读:// 作者 : Bingzhao Chen// 创建时间: 2016/7/1 11:38#ifndef mToggleButton_h__#define mToggleButton_h__#include"cocos2d.h"using namespace cocos2d;class mToggleButton : public Node{private:MenuItemToggle* toggleItem;public:static mToggleButton
// 作者 : Bingzhao Chen // 创建时间: 2016/7/1 11:38 #ifndef mToggleButton_h__ #define mToggleButton_h__ #include"cocos2d.h" using namespace cocos2d; class mToggleButton : public Node{ private: MenuItemToggle* toggleItem; public: static mToggleButton* createWithSprite(const ccMenuCallback& callback,Sprite* normal,Sprite* selected); inline unsigned int getSelectedIndex() const { return toggleItem->getSelectedIndex(); }; MenuItem* getSelectedItem(); private: mToggleButton(); ~mToggleButton(); virtual bool init(const ccMenuCallback& callback,Sprite* selected); }; #endif // mToggleButton_h__ #include "mToggleButton.h" mToggleButton::mToggleButton() :toggleItem(nullptr) { } mToggleButton::~mToggleButton() { } mToggleButton* mToggleButton::createWithSprite(const ccMenuCallback& callback,Sprite* selected) { mToggleButton *pRet = new(std::nothrow)mToggleButton(); if (pRet && pRet->init(callback,normal,selected)){ pRet->autorelease(); return pRet; } else { delete pRet; pRet = nullptr; return nullptr; } } bool mToggleButton::init(const ccMenuCallback& callback,Sprite* selected) { if (!Node::init()){ return false; } auto normalItem = MenuItemSprite::create(normal,normal); auto selectedItem = MenuItemSprite::create(selected,selected); toggleItem = MenuItemToggle::createWithCallback(callback,normalItem,selectedItem,NULL); toggleItem->setPosition(Vec2::ZERO); auto menu = Menu::create(toggleItem,NULL); menu->setPosition(Vec2::ZERO); this->addChild(menu); return true; } MenuItem* mToggleButton::getSelectedItem() { return toggleItem->getSelectedItem(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |