码迷,mamicode.com
首页 > 其他好文 > 详细

Cocos2d-x_3.2 Demo ----------TestScene类

时间:2014-09-16 23:40:51      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   io   os   ar   数据   

 1 class TestScene : public Scene
 2 {
 3 public: 
 4     TestScene(bool bPortrait = false, bool physics = false);
 5     virtual void onEnter() override;// 进入场景事调用
 6 
 7     virtual void runThisTest() = 0;// 运行场景需重写
 8 };
 9 
10 // C++ 11
11 
12 #define CL(__className__) [](){ return __className__::create();}
13 #define CLN(__className__) [](){ auto obj = new __className__(); obj->autorelease(); return obj; }

这个类主要提供接口作用,主要是在菜单项点击后运行相应的场景。

 1 /* 分别初始化物理层和普遍层 */
 2 TestScene::TestScene(bool bPortrait, bool physics/* = false*/)
 3 {
 4     if (physics)
 5     {
 6 #if CC_USE_PHYSICS
 7         TestScene::initWithPhysics();
 8 #else
 9         Scene::init();
10 #endif
11     }
12     else
13     {
14         Scene::init();
15     }
16 }

看注释估计读者都已经看懂了,所以这里也无需解释了。

 1 void TestScene::onEnter()
 2 {
 3     Scene::onEnter();
 4 
 5     // 添加回主菜单的菜单项
 6     TTFConfig ttfConfig("fonts/arial.ttf", 20);
 7     auto label = Label::createWithTTF(ttfConfig,"MainMenu");
 8     auto menuItem = MenuItemLabel::create(label, testScene_callback );
 9     
10     auto menu = Menu::create(menuItem, nullptr);
11     menu->setPosition( Vec2::ZERO );
12     menuItem->setPosition( Vec2( VisibleRect::right().x - 50, VisibleRect::bottom().y + 25) );
13 
14     addChild(menu, 1);
15 }

VisibleRect类请看这里http://www.cnblogs.com/studweijun/p/3973600.html

这个函数主要是写在测试的每个场景当中显示“MainMenu”其实就是返回主菜单,

bubuko.com,布布扣

看到上图右下角的MainMenu了吧,接下来我们来看一下他是怎么返回的(回调函数):

 1 void testScene_callback(Ref *sender )
 2 {
 3     auto scene = Scene::create();
 4 
 5     auto layer = new TestController();
 6     scene->addChild(layer);
 7     layer->release();
 8 
 9     Director::getInstance()->replaceScene(scene);
10 
11     cocostudio::ArmatureDataManager::destroyInstance();// 销毁骨骼动画数据
12 }

TestCotroller类请看这里http://www.cnblogs.com/studweijun/p/3973555.html

实现的很简单,新建场景,然后TestController类又重新new了一次,再替换掉场景。

Cocos2d-x_3.2 Demo ----------TestScene类

标签:des   style   blog   http   color   io   os   ar   数据   

原文地址:http://www.cnblogs.com/studweijun/p/3976047.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!