Cocos2d-x 中開關按鈕切換

在之前我們介紹過菜單的類有哪些,以及部分菜單的使用方法,在這裏我們學習下開關菜單的使用。主要實現MenuItemToggle菜單多種狀態切換以及狀態對應的功能實現

菜單中又包含了菜單項,菜單項類是MenuItem,每個菜單項都有三個基本狀態:正常、選中、禁止。

菜單分類是按照菜單項進行分類的。
MenuItem的子類有
MenuItemLabel(文本)
MenuItemSprite(精靈)

MenuItemToggle(開關)

其中MenuItemLabel類有兩個子類MenuItemAtlasFont和MenuItemFont;
MenuItemSprite類是精靈菜單,它的子類是MenuItemImage,是圖片菜單;
MenuItemToggle是開關菜單。


創建開關按鈕

//開關按鈕
	auto toggleItem = MenuItemToggle::createWithCallback(
		CC_CALLBACK_1(RunAction::menuMusicToggleCallback,this),
		MenuItemLabel::create(Label::create(str, "Arial", 48)),
		MenuItemLabel::create(Label::create(FontToUTF8("英語"), "微軟雅黑", 48)),
		MenuItemLabel::create(Label::create(str1, "Marker Felt", 48)),
		MenuItemLabel::create(Label::create(str2, "Arial", 48)),
		NULL);
	toggleItem->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2));
	toggleItem->setColor(Color3B(108, 10, 200));
	auto menu = Menu::create(toggleItem, NULL);
	menu->setPosition(Vec2::ZERO);
	this->addChild(menu);
再接着看下回調函數

void RunAction::menuMusicToggleCallback(Ref* pSender)
{
	auto menuToggleItem = (MenuItemToggle*)pSender;
	CCLOG("menuToggleItem  %d", menuToggleItem->getSelectedIndex());//獲取被選中的菜單項索引。 
	//默認初始的狀態值是0
	if (menuToggleItem->getSelectedIndex() == 1)
	{
		CCLOG(FontToUTF8("狀態值爲1時功能實現。"));
	}
	else if (menuToggleItem->getSelectedIndex() == 2)
	{
		CCLOG(FontToUTF8("狀態值爲2時功能實現。"));
	}
	else if (menuToggleItem->getSelectedIndex() == 3)
	{
		CCLOG(FontToUTF8("狀態值爲3時功能實現。"));
	}
	else
	{
		CCLOG(FontToUTF8("默認狀態功能實現。"));
	}
}

按鈕切換效果運行輸出圖:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章