PuzzleSDK
MenuLayerMainMenu类 参考

#include <MenuTest.h>

+ 类 MenuLayerMainMenu 继承关系图:
+ MenuLayerMainMenu 的协作图:

Public 成员函数

 MenuLayerMainMenu ()
 
 ~MenuLayerMainMenu ()
 
bool touchBegan (cocos2d::Touch *touch, cocos2d::Event *event)
 
void touchEnded (cocos2d::Touch *touch, cocos2d::Event *event)
 
void touchCancelled (cocos2d::Touch *touch, cocos2d::Event *event)
 
void touchMoved (cocos2d::Touch *touch, cocos2d::Event *event)
 
void allowTouches (float dt)
 
void menuCallback (cocos2d::Ref *sender)
 
void menuCallbackConfig (cocos2d::Ref *sender)
 
void menuCallbackDisabled (cocos2d::Ref *sender)
 
void menuCallback2 (cocos2d::Ref *sender)
 
void menuCallbackPriorityTest (cocos2d::Ref *sender)
 
void menuCallbackBugsTest (cocos2d::Ref *pSender)
 
void onQuit (cocos2d::Ref *sender)
 
void menuMovingCallback (cocos2d::Ref *pSender)
 

Protected 属性

cocos2d::MenuItem * _disabledItem
 
cocos2d::EventListenerTouchOneByOne * _touchListener
 

详细描述

在文件 MenuTest.h43 行定义.

构造及析构函数说明

◆ MenuLayerMainMenu()

MenuLayerMainMenu::MenuLayerMainMenu ( )

在文件 MenuTest.cpp58 行定义.

59{
60 _touchListener = EventListenerTouchOneByOne::create();
61 _touchListener->setSwallowTouches(true);
62 _touchListener->onTouchBegan = CC_CALLBACK_2(MenuLayerMainMenu::touchBegan, this);
63 _touchListener->onTouchMoved = CC_CALLBACK_2(MenuLayerMainMenu::touchMoved, this);
64 _touchListener->onTouchEnded = CC_CALLBACK_2(MenuLayerMainMenu::touchEnded, this);
65 _touchListener->onTouchCancelled = CC_CALLBACK_2(MenuLayerMainMenu::touchCancelled, this);
66 _eventDispatcher->addEventListenerWithFixedPriority(_touchListener, 1);
67
68 // Font Item
69 auto spriteNormal = Sprite::create(s_MenuItem, Rect(0,23*2,115,23));
70 auto spriteSelected = Sprite::create(s_MenuItem, Rect(0,23*1,115,23));
71 auto spriteDisabled = Sprite::create(s_MenuItem, Rect(0,23*0,115,23));
72
73 auto item1 = MenuItemSprite::create(spriteNormal, spriteSelected, spriteDisabled, CC_CALLBACK_1(MenuLayerMainMenu::menuCallback, this) );
74
75 // Image Item
76 auto item2 = MenuItemImage::create(s_SendScore, s_PressSendScore, CC_CALLBACK_1(MenuLayerMainMenu::menuCallback2, this) );
77
78 // Label Item (LabelAtlas)
79 auto labelAtlas = LabelAtlas::create("0123456789", "fonts/labelatlas.png", 16, 24, '.');
80 auto item3 = MenuItemLabel::create(labelAtlas, CC_CALLBACK_1(MenuLayerMainMenu::menuCallbackDisabled, this) );
81 item3->setDisabledColor( Color3B(32,32,64) );
82 item3->setColor( Color3B(200,200,255) );
83 CCLOG("test MenuItem Label getString: %s", item3->getString().c_str());
84 // Font Item
85 auto item4 = MenuItemFont::create("I toggle enable items", [&](Ref *sender) {
86 _disabledItem->setEnabled(! _disabledItem->isEnabled() );
87 });
88
89 item4->setFontSizeObj(20);
90 item4->setFontName("fonts/Marker Felt.ttf");
91
92 // Label Item (LabelBMFont)
93 auto label = Label::createWithBMFont("fonts/bitmapFontTest3.fnt", "configuration");
94 auto item5 = MenuItemLabel::create(label, CC_CALLBACK_1(MenuLayerMainMenu::menuCallbackConfig, this));
95
96 // Testing issue #500
97 item5->setScale( 0.8f );
98
99 // Events
100 MenuItemFont::setFontName("fonts/Marker Felt.ttf");
101 // Bugs Item
102 auto item6 = MenuItemFont::create("Bugs", CC_CALLBACK_1(MenuLayerMainMenu::menuCallbackBugsTest, this));
103
104 // Font Item
105 auto item7= MenuItemFont::create("Quit", CC_CALLBACK_1(MenuLayerMainMenu::onQuit, this));
106
107 auto item8 = MenuItemFont::create("Remove menu item when moving", CC_CALLBACK_1(MenuLayerMainMenu::menuMovingCallback, this));
108
109 auto color_action = TintBy::create(0.5f, 0, -255, -255);
110 auto color_back = color_action->reverse();
111 auto seq = Sequence::create(color_action, color_back, nullptr);
112 item7->runAction(RepeatForever::create(seq));
113
114 auto menu = Menu::create( item1, item2, item3, item4, item5, item6, item7, item8, nullptr);
115 menu->alignItemsVertically();
116
117
118 // elastic effect
119 auto s = Director::getInstance()->getWinSize();
120
121 int i=0;
122 for(const auto &child : menu->getChildren()) {
123 auto dstPoint = child->getPosition();
124 int offset = (int) (s.width/2 + 50);
125 if( i % 2 == 0)
126 offset = -offset;
127
128 child->setPosition( Vec2( dstPoint.x + offset, dstPoint.y) );
129 child->runAction(
130 EaseElasticOut::create(MoveBy::create(2, Vec2(dstPoint.x - offset,0.0f)), 0.35f)
131 );
132 i++;
133 }
134
135 _disabledItem = item3; item3->retain();
136 _disabledItem->setEnabled( false );
137
138 addChild(menu);
139 menu->setTag(100);
140 menu->setPosition(Vec2(s.width/2, s.height/2));
141 menu->setScale(0);
142 menu->runAction(ScaleTo::create(1,1));
143}
void touchEnded(cocos2d::Touch *touch, cocos2d::Event *event)
Definition: MenuTest.cpp:150
cocos2d::EventListenerTouchOneByOne * _touchListener
Definition: MenuTest.h:47
void onQuit(cocos2d::Ref *sender)
Definition: MenuTest.cpp:203
void menuMovingCallback(cocos2d::Ref *pSender)
Definition: MenuTest.cpp:209
void menuCallbackDisabled(cocos2d::Ref *sender)
Definition: MenuTest.cpp:185
void touchMoved(cocos2d::Touch *touch, cocos2d::Event *event)
Definition: MenuTest.cpp:158
void touchCancelled(cocos2d::Touch *touch, cocos2d::Event *event)
Definition: MenuTest.cpp:154
bool touchBegan(cocos2d::Touch *touch, cocos2d::Event *event)
Definition: MenuTest.cpp:145
void menuCallback(cocos2d::Ref *sender)
Definition: MenuTest.cpp:168
void menuCallback2(cocos2d::Ref *sender)
Definition: MenuTest.cpp:193
void menuCallbackConfig(cocos2d::Ref *sender)
Definition: MenuTest.cpp:173
cocos2d::MenuItem * _disabledItem
Definition: MenuTest.h:46
void menuCallbackBugsTest(cocos2d::Ref *pSender)
Definition: MenuTest.cpp:198
static const char s_PressSendScore[]
Definition: testResource.h:58
static const char s_MenuItem[]
Definition: testResource.h:56
static const char s_SendScore[]
Definition: testResource.h:57

引用了 _disabledItem, _touchListener, menuCallback(), menuCallback2(), menuCallbackBugsTest(), menuCallbackConfig(), menuCallbackDisabled(), menuMovingCallback(), onQuit(), s_MenuItem, s_PressSendScore, s_SendScore, touchBegan(), touchCancelled(), touchEnded() , 以及 touchMoved().

+ 函数调用图:

◆ ~MenuLayerMainMenu()

MenuLayerMainMenu::~MenuLayerMainMenu ( )

在文件 MenuTest.cpp162 行定义.

163{
164 _eventDispatcher->removeEventListener(_touchListener);
165 _disabledItem->release();
166}

引用了 _disabledItem , 以及 _touchListener.

成员函数说明

◆ allowTouches()

void MenuLayerMainMenu::allowTouches ( float  dt)

在文件 MenuTest.cpp178 行定义.

179{
180 _eventDispatcher->setPriority(_touchListener, 1);
181 unscheduleAllCallbacks();
182 log("TOUCHES ALLOWED AGAIN");
183}

引用了 _touchListener.

被这些函数引用 menuCallbackDisabled().

+ 这是这个函数的调用关系图:

◆ menuCallback()

void MenuLayerMainMenu::menuCallback ( cocos2d::Ref *  sender)

在文件 MenuTest.cpp168 行定义.

169{
170 static_cast<LayerMultiplex*>(_parent)->switchTo(1, false);
171}

被这些函数引用 MenuLayerMainMenu().

+ 这是这个函数的调用关系图:

◆ menuCallback2()

void MenuLayerMainMenu::menuCallback2 ( cocos2d::Ref *  sender)

在文件 MenuTest.cpp193 行定义.

194{
195 static_cast<LayerMultiplex*>(_parent)->switchTo(2, false);
196}

被这些函数引用 MenuLayerMainMenu().

+ 这是这个函数的调用关系图:

◆ menuCallbackBugsTest()

void MenuLayerMainMenu::menuCallbackBugsTest ( cocos2d::Ref *  pSender)

在文件 MenuTest.cpp198 行定义.

199{
200 static_cast<LayerMultiplex*>(_parent)->switchTo(4, false);
201}

被这些函数引用 MenuLayerMainMenu().

+ 这是这个函数的调用关系图:

◆ menuCallbackConfig()

void MenuLayerMainMenu::menuCallbackConfig ( cocos2d::Ref *  sender)

在文件 MenuTest.cpp173 行定义.

174{
175 static_cast<LayerMultiplex*>(_parent)->switchTo(3, false);
176}

被这些函数引用 MenuLayerMainMenu().

+ 这是这个函数的调用关系图:

◆ menuCallbackDisabled()

void MenuLayerMainMenu::menuCallbackDisabled ( cocos2d::Ref *  sender)

在文件 MenuTest.cpp185 行定义.

186{
187 // hijack all touch events for 5 seconds
188 _eventDispatcher->setPriority(_touchListener, -1);
189 schedule(CC_SCHEDULE_SELECTOR(MenuLayerMainMenu::allowTouches), 5.0f);
190 log("TOUCHES DISABLED FOR 5 SECONDS");
191}
void allowTouches(float dt)
Definition: MenuTest.cpp:178

引用了 _touchListener , 以及 allowTouches().

被这些函数引用 MenuLayerMainMenu().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ menuCallbackPriorityTest()

void MenuLayerMainMenu::menuCallbackPriorityTest ( cocos2d::Ref *  sender)

◆ menuMovingCallback()

void MenuLayerMainMenu::menuMovingCallback ( cocos2d::Ref *  pSender)

在文件 MenuTest.cpp209 行定义.

210{
211 static_cast<LayerMultiplex*>(_parent)->switchTo(5, false);
212}

被这些函数引用 MenuLayerMainMenu().

+ 这是这个函数的调用关系图:

◆ onQuit()

void MenuLayerMainMenu::onQuit ( cocos2d::Ref *  sender)

在文件 MenuTest.cpp203 行定义.

204{
205 //[[Director sharedDirector] end];
206 //getCocosApp()->exit();
207}

被这些函数引用 MenuLayerMainMenu().

+ 这是这个函数的调用关系图:

◆ touchBegan()

bool MenuLayerMainMenu::touchBegan ( cocos2d::Touch *  touch,
cocos2d::Event *  event 
)

在文件 MenuTest.cpp145 行定义.

146{
147 return true;
148}

被这些函数引用 MenuLayerMainMenu().

+ 这是这个函数的调用关系图:

◆ touchCancelled()

void MenuLayerMainMenu::touchCancelled ( cocos2d::Touch *  touch,
cocos2d::Event *  event 
)

在文件 MenuTest.cpp154 行定义.

155{
156}

被这些函数引用 MenuLayerMainMenu().

+ 这是这个函数的调用关系图:

◆ touchEnded()

void MenuLayerMainMenu::touchEnded ( cocos2d::Touch *  touch,
cocos2d::Event *  event 
)

在文件 MenuTest.cpp150 行定义.

151{
152}

被这些函数引用 MenuLayerMainMenu().

+ 这是这个函数的调用关系图:

◆ touchMoved()

void MenuLayerMainMenu::touchMoved ( cocos2d::Touch *  touch,
cocos2d::Event *  event 
)

在文件 MenuTest.cpp158 行定义.

159{
160}

被这些函数引用 MenuLayerMainMenu().

+ 这是这个函数的调用关系图:

类成员变量说明

◆ _disabledItem

cocos2d::MenuItem* MenuLayerMainMenu::_disabledItem
protected

在文件 MenuTest.h46 行定义.

被这些函数引用 MenuLayerMainMenu() , 以及 ~MenuLayerMainMenu().

◆ _touchListener

cocos2d::EventListenerTouchOneByOne* MenuLayerMainMenu::_touchListener
protected

在文件 MenuTest.h47 行定义.

被这些函数引用 allowTouches(), menuCallbackDisabled(), MenuLayerMainMenu() , 以及 ~MenuLayerMainMenu().


该类的文档由以下文件生成: