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

 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”其实就是返回主菜单,

看到上图右下角的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了一次,再替换掉场景。

时间: 2024-12-19 10:57:59

Cocos2d-x_3.2 Demo ----------TestScene类的相关文章

[cocos2dx笔记008]cocos2d 用luabridge手动绑定类

基于cocos2dx 2.2.2版本.这几天使用了cocostudio实现了,动画,骨骼动画,UI编辑,粒子效果,虽然有些不足,但已经算是非常好了.今天尝试用lua,这个非常简单,创建的时候,设置语言为lua,那就可以创建lua工程. 在cocos2d-x-2.2.2\tools\project-creator下运行: python create_project.py -project test_lua -package com.android.zdhsoft -language lua xco

Cocos2d-x_3.2 Demo ----------BaseTestt类

1 class BaseTest : public cocos2d::Layer 2 { 3 public: 4 virtual std::string title() const;// 主标题 5 virtual std::string subtitle() const;// 副标题 6 7 virtual void restartCallback(Ref* sender);// 重置场景回调 8 virtual void nextCallback(Ref* sender);// 下一个场景回

cocos2d Android.mk自动添加类

打开Android.mk修改以下代码: LOCAL_SRC_FILES := hellocpp/main.cpp ../../Classes/AppDelegate.cpp ../../Classes/HelloWorldScene.cpp 替换成: #------------------------------------------------------------------------------------- # 遍历目录及子目录的函数 define walk $(wildcard

Cocos2d-x3.0 lua绑定C++类

这里记录下我实现Lua绑定的全过程. 原文地址:http://blog.csdn.net/qqmcy/article/details/26099859 准备工作: 1.创一个一个Lua的2dx工程.(这个网上已经有好多了) 2.创一个C++类. TestScene.h  这个只是一个简单的场景 // // TestScene.h // uitestLua // // Created by 杜甲 on 14-5-17. // // #ifndef __uitestLua__TestScene__

解决内存泄漏更加清楚的认识到Java匿名类与外部类的关系

1.事件起因 在做项目的时候,通过Android Studio的Memory Monitor窗口观察程序内存使用情况,发现当程序退出的时候,有一部分应该释放掉的内存没有释放掉,知道程序中应该有内存泄漏了.为了发现程序中的内存泄漏,我切换了IDE工具到Eclipse,里面安装了内存泄漏的分析工具MAT,具体怎么用MAT分析内存泄漏可以自己Google,我把我自己找到内存泄漏的地方贴出来 从上图中可以看到,有24M左右的内存被mView(其实它真正是一个Fragment)这个变量持有,导致Java垃

Android 自动生成的R类

来自:http://android.tgbus.com/Android/tutorial/201105/353458.shtml Android 自动生成的R类 资源文件的使用分为在代码中使用和在其他资源文件中引用该资源文件.在我们编译一个Android应用时,Android会自动生成一个R类,在该类中根据不同的资源类型又生成了相应的内部类,该类包含了系统中使用到的所有资源文件的标示,其内容如下所示. Java代码:package eoe.demo; // 资源类 public final cl

【Cocos2d入门教程三】HelloWorld之一目了然

什么程序都是从HelloWorld先开始.同样Cocos2d-x我们先从HelloWorld进行下手.下面是HelloWorld的运行完成图: 建立好的Cocos游戏项目中会有两个比较常用接触的文件夹.分别为Classes与resource.Classes存取代码文件,resource存取资源文件,下面为完整的项目架构: 我们先来看下最基本的AppDelegate.cpp类 1 #include "AppDelegate.h" 2 #include "HelloWorldSc

RemoteViews用法三:包含的widget的类音乐播放器

关于widget的用法参考:RemoteViews用法一:widget简单用法 RemoteViews用法二:可以接收点击事件并改变外观的widget 这篇博文主要是完成一个类音乐播放器,全面的应用activity,widget,service这几个类. 下载: 代码不算少,就不在这里粘代码了,先把源码下载地址奉上:http://download.csdn.net/detail/u011647962/8184423 demo效果: 为什么这个demo叫类音乐播放器呢,因为只有播放器的形,没有播放

别样JAVA学习(六)继承下(2.1)Object类equals()

上一节继承下(一)我们进行抽象类.接口以及多态的学习, 接下来大家我们讲点特殊的东西就是object类, 我们一直在说继承,子继承了父,父还有没有父类呢, 为什么这么思考,大家想构造函数的第一行是不是都有 一个隐式的super()语句,它们是不是也都会去访问自己的 父类呢?其实是的,这个父类叫什么呢? 叫做Object类,传说JAVA对象中的上帝,哈哈. 1.定义 所有对象的超类,所有对象的直接后者间接父类. 肯定是所有对象都具备的功能. 随便定义一个类 class Demo{}除了隐式的构造方