场景(CCScene) 在游戏里,场景就是关卡。 CCScene是app工作流程上独立块,一个app可能拥有多个scene,但是在任何时候只能有一个是激活状态的。一个CCScene对象由一个或多个CCLayer组成,layer之间是前后相连的。Layer提供了scene的外观和行为。通常的用法是直接用一个或多个layer实例化一个scene。CCScene的子类CCTrasitionScene实现移动transitions,提供两个scene之间的转移效果,由于scene是CCNode的子类,所以scene可以手工或者用aciton来转变坐标。所有层和精灵都是他的(子节点)children。

CCScene的4个基本方法:

runWithScene(运行画面),

replaceScene(替换场景 例如从主菜单进入游戏界面),

pushScene(暂停界面),

popScene(从暂停的界面还原到游戏界面)

示例:

class SceneTestLayer1 : public cocos2d::CCLayer
{
public:
SceneTestLayer1();
~SceneTestLayer1(); virtual void onEnter();
virtual void onEnterTransitionDidFinish();
void onPushScene(cocos2d::CCObject* pSender);
void onPushSceneTran(cocos2d::CCObject* pSender);
} ; class SceneTestLayer2 : public cocos2d::CCLayer
{
public:
SceneTestLayer2();
void onGoBack(cocos2d::CCObject* pSender);
} ; SceneTestLayer1::SceneTestLayer1()
{
CCMenuItemFont* item1 = CCMenuItemFont::create( "Test pushScene", this, menu_selector(SceneTestLayer1::onPushScene) );
CCMenuItemFont* item2 = CCMenuItemFont::create( "Test pushScene w/transition", this, menu_selector(SceneTestLayer1::onPushSceneTran) );
CCMenu* menu = CCMenu::create( item1, item2, NULL );
menu->alignItemsVertically();
addChild( menu );
} void SceneTestLayer1::onEnter()
{
CCLOG("SceneTestLayer1#onEnter");
CCLayer::onEnter();
} void SceneTestLayer1::onEnterTransitionDidFinish()
{
CCLOG("SceneTestLayer1#onEnterTransitionDidFinish");
CCLayer::onEnterTransitionDidFinish();
} SceneTestLayer1::~SceneTestLayer1()
{
} void SceneTestLayer1::onPushScene(CCObject* pSender)
{
//创建一个新的CCScene来作为当前的Scene
CCScene* scene = new CCScene();
CCLayer* pLayer = new SceneTestLayer2();
scene->addChild( pLayer, );
CCDirector::sharedDirector()->pushScene( scene );
scene->release();
pLayer->release();
} void SceneTestLayer1::onPushSceneTran(CCObject* pSender)
{
//创建一个新的CCScene来作为当前的Scene
CCScene* scene = new CCScene();
CCLayer* pLayer = new SceneTestLayer2();
scene->addChild( pLayer, );
//使用动画效果的切换
CCDirector::sharedDirector()->pushScene( CCTransitionSlideInT::create(, scene) );
scene->release();
pLayer->release();
} //------------------------------------------------------------------
//
// SceneTestLayer2
//
//------------------------------------------------------------------ SceneTestLayer2::SceneTestLayer2()
{
CCMenuItemFont* item = CCMenuItemFont::create( "Go Back", this, menu_selector(SceneTestLayer2::onGoBack) );
CCMenu* menu = CCMenu::create( item, NULL );
menu->alignItemsVertically();
addChild( menu );
} void SceneTestLayer2::onGoBack(CCObject* pSender)
{
//移除
CCDirector::sharedDirector()->popScene();
}

运行的效果:

  

[Cocos2d-x For WP8]Scene场景的更多相关文章

  1. 【转】Unity Scene场景自定义坐标轴

    来自:https://blog.csdn.net/cheng624/article/details/70859054 多看看别人的代码是没有坏处的,即使学不了人家的大框架,偶尔拾起一些小东西也是可以的 ...

  2. ‎Cocos2d-x 学习笔记(3.1) Scene 场景与场景切换

    1. Scene 简介 游戏中我们看到/看不到的所有元素都是展示在场景之Scene上. 我们可以把场景比作放在地上的没盖纸箱,层Layer是纸箱里堆放的玻璃,Sprite等元素画在玻璃Layer上,这 ...

  3. 小程序开发之获取客户来源 scene 场景值 手机设备信息

    为什么要获取客户来源 用作数据分析,根据客户来源,做精准转化! 判断客户来源入口方式 1.通过官方的scene场景值 常见场景值 场景值ID 说明 1001 发现栏小程序主入口,「最近使用」列表 10 ...

  4. cocos2d基本类介绍 director/scene/layer/sprite

    [核心类]     导演Director.场景Scene.布景层Layer.精灵Sprite的概念请移步:     导演控制场景,场景控制图层,图层控制精灵,精灵控制动作.     相互之间的关系框架 ...

  5. cocos2d之创建自己的场景类

    |   版权声明:本文为博主原创文章,未经博主允许不得转载. 1. 首先创建.h的头文件,然后在将一些图片声音素材加到resource文件夹内,最后在创建.cpp文件:         .h头文件中创 ...

  6. Unity5版本的AssetBundle打包方案之打包Scene场景

    using UnityEngine; using System.Collections; using UnityEditor; /// <summary> /// 脚本位置:Editor文 ...

  7. [Cocos2d-x For WP8]Transition 场景切换

    在游戏中通常会打完了一关之后就会从当前的场景转换到另外一关的场景了,在Cocos2d-x中是由CCScene类表示一个场景.那么场景(CCScene)是为游戏中的精灵(CCSprite)提供了舞台,场 ...

  8. Scene (场景视图) 详解

    控制二维切换的按钮 点击2D按钮可以激活2D模式.这个按钮会将场景相机在透视视图和正交投影视图之间进行切换.当观察透视视图时,远离相机的物体看起来更小:然而,当正交投影视图的时候,物体的大小并不受相机 ...

  9. Unity 3D还原Scene场景、市面多数游戏视角高度自定义、第三人称视角分离功能:平移、拖动、看向中心等

    Unity视角的高度自定义 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享. ...

随机推荐

  1. 取得表中数据的insert语句

    Build Insert Statements for the Existing Data in Tables 下面这个脚本实现了取得一个非空表中的所有insert语句 This script bui ...

  2. h264 profile & level

    转自:http://blog.csdn.net/sphone89/article/details/17492433 H.264 Profiles H.264有四种profile,每个profile支持 ...

  3. Java Web 项目获取运行时路径 classpath

    假设资源文件放在maven工程的 src/main/resources 资源文件夹下,源码文件放在 src/main/java/下, 那么java文件夹和resources文件夹在运行时就是class ...

  4. selenium实战-自动退百度云共享群

    必备知识 在官网上下好selenium-3.0.1-py2.py3-none-any.whl,然后进入下载文件所在的位置 pip install selenium-3.0.1-py2.py3-none ...

  5. sidt十六进制代码

    00121453 0F010D 40441200 sidt fword ptr ds:[gliu]0012145A 0F014D B0 sidt fword ptr ss:[ebp-0x50]0012 ...

  6. PE文件的执行顺序

    当一个PE文件被执行时,PE装载器首先检查DOS MZ header里的PE header的偏移量.如果找到,则直接跳转到PE header的位置. 当PE装载器跳转到PE header后,第二步要做 ...

  7. hdu 3037 Saving Beans Lucas定理

    Saving Beans Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  8. 30分钟LINQ教程(转)

    在说LINQ之前必须先说说几个重要的C#语言特性 一:与LINQ有关的语言特性 1.隐式类型 (1)源起 在隐式类型出现之前, 我们在声明一个变量的时候, 总是要为一个变量指定他的类型 甚至在fore ...

  9. DHCP欺骗(DHCP Sproofing)

    DHCP欺骗(DHCP Sproofing)   DHCP Sproofing同样是一种中间人攻击方式.DHCP是提供IP地址分配的服务.当局域网中的计算机设置为自动获取IP,就会在启动后发送广播包请 ...

  10. PHP 采集

    <?php header("content-type:text/html;charset=gbk"); // 要采集的页面的地址 $url = "http://ww ...