PuzzleSDK
SceneTest.cpp
浏览该文件的文档.
1/****************************************************************************
2 Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.
3
4 http://www.cocos2d-x.org
5
6 Permission is hereby granted, free of charge, to any person obtaining a copy
7 of this software and associated documentation files (the "Software"), to deal
8 in the Software without restriction, including without limitation the rights
9 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 copies of the Software, and to permit persons to whom the Software is
11 furnished to do so, subject to the following conditions:
12
13 The above copyright notice and this permission notice shall be included in
14 all copies or substantial portions of the Software.
15
16 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 THE SOFTWARE.
23 ****************************************************************************/
24
25#include "SceneTest.h"
26#include "../testResource.h"
27
29
30SceneTests::SceneTests()
31{
33}
34
35//------------------------------------------------------------------
36//
37// SceneTestLayer1
38//
39//------------------------------------------------------------------
40enum
41{
48};
49
51{
52 auto item1 = MenuItemFont::create( "Test pushScene", CC_CALLBACK_1(SceneTestLayer1::onPushScene, this));
53 auto item2 = MenuItemFont::create( "Test pushScene w/transition", CC_CALLBACK_1(SceneTestLayer1::onPushSceneTran, this));
54 auto item3 = MenuItemFont::create( "Quit", CC_CALLBACK_1(SceneTestLayer1::onQuit, this));
55
56 auto menu = Menu::create( item1, item2, item3, nullptr );
57 menu->alignItemsVertically();
58
59 addChild( menu );
60
61 auto s = Director::getInstance()->getWinSize();
62 auto sprite = Sprite::create(s_pathGrossini);
63 addChild(sprite);
64 sprite->setPosition( Vec2(s.width-40, s.height/2) );
65 auto rotate = RotateBy::create(2, 360);
66 auto repeat = RepeatForever::create(rotate);
67 sprite->runAction(repeat);
68
69 schedule( CC_SCHEDULE_SELECTOR(SceneTestLayer1::testDealloc) );
70}
71
73{
74 //CCLOG("SceneTestLayer1:testDealloc");
75}
76
78{
79 CCLOG("SceneTestLayer1#onEnter");
80 Layer::onEnter();
81}
82
84{
85 CCLOG("SceneTestLayer1#onEnterTransitionDidFinish");
86 Layer::onEnterTransitionDidFinish();
87}
88
90{
91 //NSLog(@"SceneTestLayer1 - dealloc");
92}
93
95{
96 auto scene = SceneTestScene::create(2);
97 Director::getInstance()->pushScene( scene );
98}
99
101{
102 auto scene = SceneTestScene::create(2);
103 Director::getInstance()->pushScene( TransitionSlideInT::create(1, scene) );
104}
105
106
107void SceneTestLayer1::onQuit(Ref* sender)
108{
109 //getCocosApp()->exit();
110 //Director::getInstance()->popScene();
111
114 //if( [[UIApplication sharedApplication] respondsToSelector:@selector(terminate)] )
115 // [[UIApplication sharedApplication] performSelector:@selector(terminate)];
116}
117
118//------------------------------------------------------------------
119//
120// SceneTestLayer2
121//
122//------------------------------------------------------------------
123
125{
126 _timeCounter = 0;
127
128 auto item1 = MenuItemFont::create( "replaceScene", CC_CALLBACK_1(SceneTestLayer2::onReplaceScene, this));
129 auto item2 = MenuItemFont::create( "replaceScene w/transition", CC_CALLBACK_1(SceneTestLayer2::onReplaceSceneTran, this));
130 auto item3 = MenuItemFont::create( "Go Back", CC_CALLBACK_1(SceneTestLayer2::onGoBack, this));
131
132 auto menu = Menu::create( item1, item2, item3, nullptr );
133 menu->alignItemsVertically();
134
135 addChild( menu );
136
137 auto s = Director::getInstance()->getWinSize();
138 auto sprite = Sprite::create(s_pathGrossini);
139 addChild(sprite);
140 sprite->setPosition( Vec2(s.width-40, s.height/2) );
141 auto rotate = RotateBy::create(2, 360);
142 auto repeat = RepeatForever::create(rotate);
143 sprite->runAction(repeat);
144
145 schedule( CC_SCHEDULE_SELECTOR(SceneTestLayer2::testDealloc) );
146}
147
149{
150 //_timeCounter += dt;
151 //if( _timeCounter > 10 )
152 // onReplaceScene(this);
153}
154
156{
157 Director::getInstance()->popScene();
158}
159
161{
162 auto scene = SceneTestScene::create(3);
163 Director::getInstance()->replaceScene( scene );
164}
165
167{
168 auto scene = SceneTestScene::create(3);
169 Director::getInstance()->replaceScene( TransitionFlipX::create(2, scene) );
170}
171
172//------------------------------------------------------------------
173//
174// SceneTestLayer3
175//
176//------------------------------------------------------------------
177
179{
180
181}
182
184{
185 if (LayerColor::initWithColor(Color4B(0,0,255,255)))
186 {
187 auto s = Director::getInstance()->getWinSize();
188
189 auto item0 = MenuItemFont::create("Touch to pushScene (self)", CC_CALLBACK_1(SceneTestLayer3::item0Clicked, this));
190 auto item1 = MenuItemFont::create("Touch to popScene", CC_CALLBACK_1(SceneTestLayer3::item1Clicked, this));
191 auto item2 = MenuItemFont::create("Touch to popToRootScene", CC_CALLBACK_1(SceneTestLayer3::item2Clicked, this));
192 auto item3 = MenuItemFont::create("Touch to popToSceneStackLevel(2)", CC_CALLBACK_1(SceneTestLayer3::item3Clicked, this));
193
194 auto menu = Menu::create(item0, item1, item2, item3, nullptr);
195 this->addChild(menu);
196 menu->alignItemsVertically();
197
198 this->schedule(CC_SCHEDULE_SELECTOR(SceneTestLayer3::testDealloc));
199
200 auto sprite = Sprite::create(s_pathGrossini);
201 addChild(sprite);
202 sprite->setPosition( Vec2(s.width/2, 40.0f) );
203 auto rotate = RotateBy::create(2, 360);
204 auto repeat = RepeatForever::create(rotate);
205 sprite->runAction(repeat);
206 return true;
207 }
208 return false;
209}
210
212{
213 log("Layer3:testDealloc");
214}
215
217{
218 auto s = Director::getInstance()->getWinSize();
219 auto newScene = Scene::createWithSize(s);
220 newScene->addChild(SceneTestLayer3::create());
221 Director::getInstance()->pushScene(TransitionFade::create(0.5, newScene, Color3B(0,255,255)));
222}
223
225{
226 Director::getInstance()->popScene();
227}
228
230{
231 Director::getInstance()->popToRootScene();
232}
233
235{
236 Director::getInstance()->popToSceneStackLevel(2);
237}
238
239SceneTestScene* SceneTestScene::create(int testIndex /* = 1 */)
240{
241 auto scene = new (std::nothrow) SceneTestScene;
242 if (scene && scene->init())
243 {
244 scene->autorelease();
245 switch (testIndex)
246 {
247 case 1:
248 scene->addChild(SceneTestLayer1::create());
249 break;
250 case 2:
251 scene->addChild(SceneTestLayer2::create());
252 break;
253 case 3:
254 scene->addChild(SceneTestLayer3::create());
255 break;
256 default:
257 break;
258 }
259 }
260 else
261 {
262 delete scene;
263 scene = nullptr;
264 }
265
266 return scene;
267}
#define ADD_TEST_CASE(__className__)
Definition: BaseTest.h:211
USING_NS_CC
Definition: SceneTest.cpp:28
@ MID_REPLACESCENETRAN
Definition: SceneTest.cpp:46
@ MID_PUSHSCENETRAN
Definition: SceneTest.cpp:43
@ MID_GOBACK
Definition: SceneTest.cpp:47
@ MID_REPLACESCENE
Definition: SceneTest.cpp:45
@ MID_QUIT
Definition: SceneTest.cpp:44
@ MID_PUSHSCENE
Definition: SceneTest.cpp:42
virtual void onEnterTransitionDidFinish() override
Definition: SceneTest.cpp:83
void testDealloc(float dt)
Definition: SceneTest.cpp:72
void onQuit(cocos2d::Ref *sender)
Definition: SceneTest.cpp:107
void onPushSceneTran(cocos2d::Ref *sender)
Definition: SceneTest.cpp:100
void onPushScene(cocos2d::Ref *sender)
Definition: SceneTest.cpp:94
virtual void onEnter() override
Definition: SceneTest.cpp:77
void onReplaceSceneTran(cocos2d::Ref *sender)
Definition: SceneTest.cpp:166
void onReplaceScene(cocos2d::Ref *sender)
Definition: SceneTest.cpp:160
void onGoBack(cocos2d::Ref *sender)
Definition: SceneTest.cpp:155
void testDealloc(float dt)
Definition: SceneTest.cpp:148
float _timeCounter
Definition: SceneTest.h:52
virtual bool init() override
Definition: SceneTest.cpp:183
void item1Clicked(cocos2d::Ref *sender)
Definition: SceneTest.cpp:224
void item3Clicked(cocos2d::Ref *sender)
Definition: SceneTest.cpp:234
virtual void testDealloc(float dt)
Definition: SceneTest.cpp:211
void item0Clicked(cocos2d::Ref *sender)
Definition: SceneTest.cpp:216
void item2Clicked(cocos2d::Ref *sender)
Definition: SceneTest.cpp:229
static SceneTestScene * create(int testIndex=1)
Definition: SceneTest.cpp:239
static const char s_pathGrossini[]
Definition: testResource.h:28