26#include "../testResource.h"
27#include "../cocos/ui/UIText.h"
36LayerTests::LayerTests()
63 node->setCascadeColorEnabled(enable);
64 node->setCascadeOpacityEnabled(enable);
66 auto& children = node->getChildren();
67 for(
const auto &child : children) {
82 auto s = Director::getInstance()->getWinSize();
83 auto layer1 = Layer::create();
85 auto sister1 = Sprite::create(
"Images/grossinis_sister1.png");
86 auto sister2 = Sprite::create(
"Images/grossinis_sister2.png");
87 auto label = Label::createWithBMFont(
"fonts/bitmapFontTest.fnt",
"Test");
89 layer1->addChild(sister1);
90 layer1->addChild(sister2);
91 layer1->addChild(label);
94 sister1->setPosition( Vec2( s.width*1/3, s.height/2));
95 sister2->setPosition( Vec2( s.width*2/3, s.height/2));
96 label->setPosition( Vec2( s.width/2, s.height/2));
99 RepeatForever::create(
101 FadeTo::create(4, 0),
102 FadeTo::create(4, 255),
103 DelayTime::create(1),
107 RepeatForever::create(
109 FadeTo::create(2, 0),
110 FadeTo::create(2, 255),
111 FadeTo::create(2, 0),
112 FadeTo::create(2, 255),
113 DelayTime::create(1),
122 return "Layer: cascading opacity";
131 auto s = Director::getInstance()->getWinSize();
132 auto layer1 = LayerColor::create(Color4B(192, 0, 0, 255), s.width, s.height/2);
133 layer1->setCascadeColorEnabled(
false);
135 layer1->setPosition( Vec2(0.0f, s.height/2));
137 auto sister1 = Sprite::create(
"Images/grossinis_sister1.png");
138 auto sister2 = Sprite::create(
"Images/grossinis_sister2.png");
139 auto label = Label::createWithBMFont(
"fonts/bitmapFontTest.fnt",
"Test");
141 layer1->addChild(sister1);
142 layer1->addChild(sister2);
143 layer1->addChild(label);
146 sister1->setPosition( Vec2( s.width*1/3, 0.0f));
147 sister2->setPosition( Vec2( s.width*2/3, 0.0f));
148 label->setPosition( Vec2( s.width/2, 0.0f));
151 RepeatForever::create(
153 FadeTo::create(4, 0),
154 FadeTo::create(4, 255),
155 DelayTime::create(1),
159 RepeatForever::create(
161 FadeTo::create(2, 0),
162 FadeTo::create(2, 255),
163 FadeTo::create(2, 0),
164 FadeTo::create(2, 255),
165 DelayTime::create(1),
174 return "CCLayerColor: cascading opacity";
183 auto s = Director::getInstance()->getWinSize();
184 auto layer1 = LayerColor::create(Color4B(192, 0, 0, 255), s.width, s.height/2);
185 layer1->setCascadeColorEnabled(
false);
186 layer1->setCascadeOpacityEnabled(
false);
188 layer1->setPosition( Vec2(0.0f, s.height/2));
190 auto sister1 = Sprite::create(
"Images/grossinis_sister1.png");
191 auto sister2 = Sprite::create(
"Images/grossinis_sister2.png");
192 auto label = Label::createWithBMFont(
"fonts/bitmapFontTest.fnt",
"Test");
194 layer1->addChild(sister1);
195 layer1->addChild(sister2);
196 layer1->addChild(label);
199 sister1->setPosition( Vec2( s.width*1/3, 0.0f));
200 sister2->setPosition( Vec2( s.width*2/3, 0.0f));
201 label->setPosition( Vec2( s.width/2, 0.0f));
204 RepeatForever::create(
206 FadeTo::create(4, 0),
207 FadeTo::create(4, 255),
208 DelayTime::create(1),
212 RepeatForever::create(
214 FadeTo::create(2, 0),
215 FadeTo::create(2, 255),
216 FadeTo::create(2, 0),
217 FadeTo::create(2, 255),
218 DelayTime::create(1),
224 return "CCLayerColor: non-cascading opacity";
235 auto s = Director::getInstance()->getWinSize();
236 auto layer1 = Layer::create();
238 auto sister1 = Sprite::create(
"Images/grossinis_sister1.png");
239 auto sister2 = Sprite::create(
"Images/grossinis_sister2.png");
240 auto label = Label::createWithBMFont(
"fonts/bitmapFontTest.fnt",
"Test");
242 layer1->addChild(sister1);
243 layer1->addChild(sister2);
244 layer1->addChild(label);
247 sister1->setPosition( Vec2( s.width*1/3, s.height/2));
248 sister2->setPosition( Vec2( s.width*2/3, s.height/2));
249 label->setPosition( Vec2( s.width/2, s.height/2));
252 RepeatForever::create(
254 TintTo::create(6, 255, 0, 255),
255 TintTo::create(6, 255, 255, 255),
256 DelayTime::create(1),
260 RepeatForever::create(
262 TintTo::create(2, 255, 255, 0),
263 TintTo::create(2, 255, 255, 255),
264 TintTo::create(2, 0, 255, 255),
265 TintTo::create(2, 255, 255, 255),
266 TintTo::create(2, 255, 0, 255),
267 TintTo::create(2, 255, 255, 255),
268 DelayTime::create(1),
278 return "Layer: cascading color";
286 auto s = Director::getInstance()->getWinSize();
287 auto layer1 = LayerColor::create(Color4B(255, 255, 255, 255), s.width, s.height/2);
289 layer1->setPosition( Vec2(0.0f, s.height/2));
291 auto sister1 = Sprite::create(
"Images/grossinis_sister1.png");
292 auto sister2 = Sprite::create(
"Images/grossinis_sister2.png");
293 auto label = Label::createWithBMFont(
"fonts/bitmapFontTest.fnt",
"Test");
295 layer1->addChild(sister1);
296 layer1->addChild(sister2);
297 layer1->addChild(label);
300 sister1->setPosition( Vec2( s.width*1/3, 0.0f));
301 sister2->setPosition( Vec2( s.width*2/3, 0.0f));
302 label->setPosition( Vec2( s.width/2, 0.0f));
305 RepeatForever::create(
307 TintTo::create(6, 255, 0, 255),
308 TintTo::create(6, 255, 255, 255),
309 DelayTime::create(1),
313 RepeatForever::create(
315 TintTo::create(2, 255, 255, 0),
316 TintTo::create(2, 255, 255, 255),
317 TintTo::create(2, 0, 255, 255),
318 TintTo::create(2, 255, 255, 255),
319 TintTo::create(2, 255, 0, 255),
320 TintTo::create(2, 255, 255, 255),
321 DelayTime::create(1),
330 return "CCLayerColor: cascading color";
338 auto s = Director::getInstance()->getWinSize();
339 auto layer1 = LayerColor::create(Color4B(255, 255, 255, 255), s.width, s.height/2);
340 layer1->setCascadeColorEnabled(
false);
341 layer1->setPosition( Vec2(0.0f, s.height/2));
343 auto sister1 = Sprite::create(
"Images/grossinis_sister1.png");
344 auto sister2 = Sprite::create(
"Images/grossinis_sister2.png");
345 auto label = Label::createWithBMFont(
"fonts/bitmapFontTest.fnt",
"Test");
347 layer1->addChild(sister1);
348 layer1->addChild(sister2);
349 layer1->addChild(label);
352 sister1->setPosition( Vec2( s.width*1/3, 0.0f));
353 sister2->setPosition( Vec2( s.width*2/3, 0.0f));
354 label->setPosition( Vec2( s.width/2, 0.0f));
357 RepeatForever::create(
359 TintTo::create(6, 255, 0, 255),
360 TintTo::create(6, 255, 255, 255),
361 DelayTime::create(1),
365 RepeatForever::create(
367 TintTo::create(2, 255, 255, 0),
368 TintTo::create(2, 255, 255, 255),
369 TintTo::create(2, 0, 255, 255),
370 TintTo::create(2, 255, 255, 255),
371 TintTo::create(2, 255, 0, 255),
372 TintTo::create(2, 255, 255, 255),
373 DelayTime::create(1),
379 return "CCLayerColor: non-cascading color";
391 auto listener = EventListenerTouchAllAtOnce::create();
396 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener,
this);
398 auto s = Director::getInstance()->getWinSize();
399 auto layer = LayerColor::create( Color4B(0xFF, 0x00, 0x00, 0x80), 200, 200);
401 layer->setIgnoreAnchorPointForPosition(
false);
402 layer->setPosition( Vec2(s.width/2, s.height/2) );
408 auto s = Director::getInstance()->getWinSize();
410 auto newSize = Size( fabs(touchLocation.x - s.width/2)*2, fabs(touchLocation.y - s.height/2)*2);
412 auto l = (LayerColor*) getChildByTag(
kTagLayer);
414 l->setContentSize( newSize );
424 auto touchLocation = touches[0]->getLocation();
436 return "ColorLayer resize (tap & move)";
448 auto s = Director::getInstance()->getWinSize();
449 auto layer1 = LayerColor::create( Color4B(255, 255, 0, 80), 100, 300);
450 layer1->setPosition(Vec2(s.width/3, s.height/2));
451 layer1->setIgnoreAnchorPointForPosition(
false);
454 auto layer2 = LayerColor::create( Color4B(0, 0, 255, 255), 100, 300);
455 layer2->setPosition(Vec2((s.width/3)*2, s.height/2));
456 layer2->setIgnoreAnchorPointForPosition(
false);
459 auto actionTint = TintBy::create(2, -255, -127, 0);
460 auto actionTintBack = actionTint->reverse();
461 auto seq1 = Sequence::create( actionTint, actionTintBack,
nullptr);
462 layer1->runAction(seq1);
464 auto actionFade = FadeOut::create(2.0f);
465 auto actionFadeBack = actionFade->reverse();
466 auto seq2 = Sequence::create(actionFade, actionFadeBack,
nullptr);
467 layer2->runAction(seq2);
472 return "ColorLayer: fade and tint";
483 auto s = Director::getInstance()->getWinSize();
484 auto layer1 = LayerColor::create( Color4B(255, 255, 255, 80) );
493 sister1->setPosition( Vec2( s.width*1/3, s.height/2) );
494 sister2->setPosition( Vec2( s.width*2/3, s.height/2) );
501 auto layer = (LayerColor*)getChildByTag(
kTagLayer);
503 backend::BlendFactor src;
504 backend::BlendFactor dst;
506 if( layer->getBlendFunc().dst == backend::BlendFactor::ZERO )
508 src = backend::BlendFactor::SRC_ALPHA;
509 dst = backend::BlendFactor::ONE_MINUS_SRC_ALPHA;
513 src = backend::BlendFactor::ONE_MINUS_DST_COLOR;
514 dst = backend::BlendFactor::ZERO;
517 BlendFunc bf = {src, dst};
518 layer->setBlendFunc( bf );
524 return "ColorLayer: blend";
534 auto layer1 = LayerGradient::create(Color4B(255,0,0,255), Color4B(0,255,0,255), Vec2(0.9f, 0.9f));
537 auto listener = EventListenerTouchAllAtOnce::create();
539 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener,
this);
541 auto label1 = Label::createWithTTF(
"Compressed Interpolation: Enabled",
"fonts/Marker Felt.ttf", 26);
542 auto label2 = Label::createWithTTF(
"Compressed Interpolation: Disabled",
"fonts/Marker Felt.ttf", 26);
543 auto item1 = MenuItemLabel::create(label1);
544 auto item2 = MenuItemLabel::create(label2);
547 auto menu = Menu::create(item,
nullptr);
549 auto s = Director::getInstance()->getWinSize();
550 menu->setPosition(Vec2(s.width / 2, 100.0f));
555 auto gradient =
static_cast<LayerGradient*
>( getChildByTag(
kTagLayer) );
556 gradient->setCompressedInterpolation(! gradient->isCompressedInterpolation());
561 auto s = Director::getInstance()->getWinSize();
563 auto touch = touches[0];
564 auto start = touch->getLocation();
566 auto diff = Vec2(s.width/2,s.height/2) - start;
567 diff = diff.getNormalized();
569 auto gradient =
static_cast<LayerGradient*
>( getChildByTag(1) );
570 gradient->setVector(diff);
575 return "LayerGradientTest";
580 return "Touch the screen and move your finger";
590 auto layer = LayerGradient::create(Color4B(255,0,0,255), Color4B(255,255,0,255));
596 return "LayerGradientTest 2";
601 return "You should see a gradient";
606#define kLayerIgnoreAnchorPoint 1000
612 auto s = Director::getInstance()->getWinSize();
614 auto l = LayerColor::create(Color4B(255, 0, 0, 255), 150, 150);
616 l->setAnchorPoint(Vec2(0.5f, 0.5f));
617 l->setPosition(Vec2( s.width/2, s.height/2));
619 auto move = MoveBy::create(2, Vec2(100,2));
620 auto back = (MoveBy *)move->reverse();
621 auto seq = Sequence::create(move, back,
nullptr);
622 l->runAction(RepeatForever::create(seq));
625 auto child = Sprite::create(
"Images/grossini.png");
627 auto lsize = l->getContentSize();
628 child->setPosition(Vec2(lsize.width/2, lsize.height/2));
632 auto menu = Menu::create(item,
nullptr);
633 this->addChild(menu);
635 menu->setPosition(Vec2(s.width/2, s.height/2));
641 bool ignore = layer->isIgnoreAnchorPointForPosition();
642 layer->setIgnoreAnchorPointForPosition(! ignore);
647 return "IgnoreAnchorPoint - Position";
652 return "Ignoring Anchor Vec2 for position";
660 auto s = Director::getInstance()->getWinSize();
662 auto l = LayerColor::create(Color4B(255, 0, 0, 255), 200, 200);
664 l->setAnchorPoint(Vec2(0.5f, 0.5f));
665 l->setPosition(Vec2( s.width/2, s.height/2));
669 auto rot = RotateBy::create(2, 360);
670 l->runAction(RepeatForever::create(rot));
673 auto child = Sprite::create(
"Images/grossini.png");
675 auto lsize = l->getContentSize();
676 child->setPosition(Vec2(lsize.width/2, lsize.height/2));
680 auto menu = Menu::create(item,
nullptr);
681 this->addChild(menu);
683 menu->setPosition(Vec2(s.width/2, s.height/2));
689 bool ignore = layer->isIgnoreAnchorPointForPosition();
690 layer->setIgnoreAnchorPointForPosition(! ignore);
695 return "IgnoreAnchorPoint - Rotation";
700 return "Ignoring Anchor Vec2 for rotations";
708 auto s = Director::getInstance()->getWinSize();
710 auto l = LayerColor::create(Color4B(255, 0, 0, 255), 200, 200);
712 l->setAnchorPoint(Vec2(0.5f, 1.0f));
713 l->setPosition(Vec2( s.width/2, s.height/2));
716 auto scale = ScaleBy::create(2, 2);
717 auto back = (ScaleBy*)scale->reverse();
718 auto seq = Sequence::create(scale, back,
nullptr);
720 l->runAction(RepeatForever::create(seq));
724 auto child = Sprite::create(
"Images/grossini.png");
726 auto lsize = l->getContentSize();
727 child->setPosition(Vec2(lsize.width/2, lsize.height/2));
731 auto menu = Menu::create(item,
nullptr);
732 this->addChild(menu);
734 menu->setPosition(Vec2(s.width/2, s.height/2));
740 bool ignore = layer->isIgnoreAnchorPointForPosition();
741 layer->setIgnoreAnchorPointForPosition(! ignore);
746 return "IgnoreAnchorPoint - Scale";
751 return "Ignoring Anchor Vec2 for scale";
756 auto layer1 = LayerGradient::create(Color4B(255, 0, 0, 255), Color4B(255, 0, 255, 255));
757 layer1->setContentSize(Size(80.0f, 80.0f));
758 layer1->setPosition(Vec2(50.0f,50.0f));
761 auto layer2 = LayerGradient::create(Color4B(0, 0, 0, 127), Color4B(255, 255, 255, 127));
762 layer2->setContentSize(Size(80.0f, 80.0f));
763 layer2->setPosition(Vec2(100.0f,90.0f));
766 auto layer3 = LayerGradient::create();
767 layer3->setContentSize(Size(80.0f, 80.0f));
768 layer3->setPosition(Vec2(150.0f,140.0f));
769 layer3->setStartColor(Color3B(255, 0, 0));
770 layer3->setEndColor(Color3B(255, 0, 255));
771 layer3->setStartOpacity(255);
772 layer3->setEndOpacity(255);
773 layer3->setBlendFunc( BlendFunc::ALPHA_NON_PREMULTIPLIED );
779 return "Extended Blend & Opacity";
784 return "You should see 3 layers";
793 size.width = size.width / 2;
794 size.height = size.height / 3;
795 Color4B color[3] = {Color4B(255, 0, 0, 255), Color4B(0, 255, 0, 255), Color4B(0, 0, 255, 255)};
797 for (
int i = 0; i < 3; ++i)
799 _layer[i] = LayerColor::create(color[i]);
800 _layer[i]->setContentSize(size);
801 _layer[i]->setPosition(Vec2(size.width/2, size.height/2) - Vec2(20.0f, 20.0f));
802 _layer[i]->setOpacity(150);
803 _layer[i]->setCascadeOpacityEnabled(
true);
810 this->addChild(
_layer[0]);
817 _layer[0]->setCascadeOpacityEnabled(!
_layer[0]->isCascadeOpacityEnabled());
822 return "Bug 3162 red layer cascade opacity enable/disable";
827 return "g and b layer opacity is effected/diseffected with r layer";
836 size.width = size.width / 2;
837 size.height = size.height / 3;
838 Color4B color[3] = {Color4B(200, 0, 0, 255), Color4B(150, 0, 0, 255), Color4B(100, 0, 0, 255)};
840 for (
int i = 0; i < 3; ++i)
842 _layer[i] = LayerColor::create(color[i]);
843 _layer[i]->setContentSize(size);
844 _layer[i]->setPosition(Vec2(size.width/2, size.height/2) - Vec2(20.0f, 20.0f));
852 this->addChild(
_layer[0]);
854 _layer[0]->setCascadeColorEnabled(
true);
855 _layer[1]->setCascadeColorEnabled(
true);
856 _layer[2]->setCascadeColorEnabled(
true);
863 _layer[0]->setCascadeColorEnabled(!
_layer[0]->isCascadeColorEnabled());
868 return "Bug 3162 bottom layer cascade color enable/disable";
873 return "u and m layer color is effected/diseffected with b layer";
878 return "Layer Color Occlude Bug Test";
883 return "Layer Color Should not occlude titles and any sprites";
889 Director::getInstance()->getRenderer()->setDepthTest(
true);
890 _layer = LayerColor::create(Color4B(0, 80, 95, 255));
897 Director::getInstance()->getRenderer()->setDepthTest(
false);
904 return "LayerRadialGradient test";
913 auto director = Director::getInstance();
914 director->setClearColor(Color4F(0, 0, 0, 0));
915 auto origin = director->getVisibleOrigin();
916 auto size = director->getVisibleSize();
917 Vec2 center(origin.x + size.width/2 + 50, origin.y + size.height/2);
918 float radius = (size.height - 50) / 2;
919 _layer = LayerRadialGradient::create(Color4B(145, 106, 209, 140), Color4B(0, 0, 0, 0), radius, center, 1.0f);
923 scaleSlider->setPosition(Vec2(50.0f, 130.0f));
924 addChild(scaleSlider);
927 listview->setPosition(Vec2(100.0f, 150.0f));
933 auto slider = ui::Slider::create();
934 slider->setTouchEnabled(
true);
935 slider->loadBarTexture(
"cocosui/sliderTrack.png");
936 slider->loadSlidBallTextures(
"cocosui/sliderThumb.png",
"cocosui/sliderThumb.png",
"");
937 slider->loadProgressBarTexture(
"cocosui/sliderProgress.png");
939 slider->setRotation(90);
941 slider->setPercent(50);
949 auto listview =
static_cast<cocos2d::ui::ListView*
>(sender);
950 for (
auto &item : listview->getItems())
951 static_cast<cocos2d::ui::Text*
>(item)->setColor(cocos2d::Color3B::WHITE);
957 auto slider =
static_cast<cocos2d::ui::Slider*
>(getChildByTag(101));
962 slider->setPercent(
_layer->getScaleX() / 2 * percent);
966 slider->setPercent(
_layer->getSkewX() / 90 * percent);
970 slider->setPercent(
_layer->getSkewY() / 90 * percent);
974 slider->setPercent(
_layer->getExpand() * percent);
978 slider->setPercent(
_layer->getRadius() / 300 * percent);
988 auto slider =
static_cast<cocos2d::ui::Slider*
>(sender);
989 float percent = slider->getPercent() / 100.f;
994 _layer->setScale(percent * 2);
995 CCLOG(
"scale is %f", percent * 2);
999 _layer->setSkewX(90 * percent);
1000 CCLOG(
"SkewX is %f", 90 * percent);
1004 _layer->setSkewY(90 * percent);
1005 CCLOG(
"SkewY is %f", 90 * percent);
1009 _layer->setExpand(percent);
1010 CCLOG(
"expand is %f", percent);
1014 _layer->setRadius(300 * percent);
1015 CCLOG(
"radius is %f", 300 * percent);
1024 auto listview = cocos2d::ui::ListView::create();
1026 auto scale = cocos2d::ui::Text::create();
1027 scale->setString(
"scale[0-2]");
1028 scale->setColor(cocos2d::Color3B::RED);
1029 scale->setTouchEnabled(
true);
1030 listview->pushBackCustomItem(scale);
1032 auto skewx = cocos2d::ui::Text::create();
1033 skewx->setString(
"skewx[0-90]");
1034 skewx->setTouchEnabled(
true);
1035 listview->pushBackCustomItem(skewx);
1037 auto skewy = cocos2d::ui::Text::create();
1038 skewy->setString(
"skewy[0-90]");
1039 skewy->setTouchEnabled(
true);
1040 listview->pushBackCustomItem(skewy);
1042 auto expand = cocos2d::ui::Text::create();
1043 expand->setString(
"expand[0-1]");
1044 expand->setTouchEnabled(
true);
1045 listview->pushBackCustomItem(expand);
1047 auto radius = cocos2d::ui::Text::create();
1048 radius->setString(
"radius[0-300]");
1049 radius->setTouchEnabled(
true);
1050 listview->pushBackCustomItem(radius);
1052 listview->setContentSize(scale->getContentSize() * 5);
1053 listview->setCurSelectedIndex(0);
1054 listview->setTouchEnabled(
true);
1056 listview->setTag(100);
#define ADD_TEST_CASE(__className__)
static void setEnableRecursiveCascading(Node *node, bool enable)
#define kLayerIgnoreAnchorPoint
cocos2d::LayerColor * _layer[3]
virtual std::string subtitle() const override
virtual std::string title() const override
virtual void onEnter() override
virtual void onEnter() override
cocos2d::LayerColor * _layer[3]
virtual std::string subtitle() const override
virtual std::string title() const override
cocos2d::LayerColor * _layer
virtual std::string subtitle() const override
virtual void onExit() override
virtual void onEnter() override
virtual std::string title() const override
virtual std::string subtitle() const override
virtual std::string title() const override
LayerExtendedBlendOpacityTest()
virtual std::string title() const override
virtual std::string subtitle() const override
void toggleItem(cocos2d::Ref *sender)
void onTouchesMoved(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
virtual std::string title() const override
virtual std::string subtitle() const override
virtual std::string title() const override
virtual void onEnter() override
void onToggle(cocos2d::Ref *pObject)
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string title() const override
virtual void onEnter() override
void onToggle(cocos2d::Ref *pObject)
void onToggle(cocos2d::Ref *pObject)
virtual std::string title() const override
virtual std::string subtitle() const override
virtual void onEnter() override
void listviewCallback(cocos2d::Ref *sender, cocos2d::ui::ListView::EventType type)
cocos2d::ui::Slider * createSlider()
int _currentSeletedItemIndex
void sliderCallback(cocos2d::Ref *sender, cocos2d::ui::Slider::EventType type)
virtual void onEnter() override
cocos2d::ui::ListView * createListView()
cocos2d::LayerRadialGradient * _layer
virtual std::string title() const override
virtual void onEnter() override
virtual std::string subtitle() const override
void onTouchesMoved(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
void onTouchesEnded(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
void updateSize(cocos2d::Vec2 &touchLocation)
void onTouchesBegan(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
virtual void onEnter() override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual void onEnter() override
virtual std::string subtitle() const override
virtual void onEnter() override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual void onEnter() override
virtual std::string subtitle() const override
virtual void onEnter() override
virtual std::string subtitle() const override
virtual void onEnter() override
virtual void onEnter() override
virtual std::string subtitle() const override
virtual std::string title() const override
virtual void onEnter() override
static cocos2d::Rect getVisibleRect()
static const char s_pathSister1[]
static const char s_pathSister2[]