创建和转换场景

创建和转换场景

尊重原创:http://cn.cocos2d-x.org/tutorial/show?id=2047

什么是场景?

场景是包含精灵(Sprites),标签(Labels),节点(Nodes)和其他游戏所需对象的容器。场景负责游戏逻辑的运行和游戏内容的逐帧渲染。每个游戏至少需要一个场景,你可以将场景想象成一部电影,场景就是其中正在运行并且用户可以实时看到的电影画面。游戏中可以拥有多个场景,并且可以在多个不同的场景之间自然的切换。Cocos2d-x提供了多种场景切换效果,你甚至可以使用超酷的切换效果。

创建场景

创建场景很简单:


1

auto myScene = Scene::create();

还记得在第二章中我们讲过的场景图部分吗?以及它是如何实现游戏的绘制的?其实最重要的是一定要记住定义好GUI元素的绘制顺序以及z-order。

场景使用范例

下面让我们创建一个简单的场景。cocos2d-x使用右手坐标系系统,也就是屏幕和显示位置的原点(0,0)在左下角,我们的游戏元素给出的坐标是相对于原点计算出来的相对坐标。如下我们创建一个简单的场景,然后加入几个元素:


1

auto dirs = Director::getInstance(); Size visibleSize = dirs->getVisibleSize(); auto scene1 = Scene::create(); auto label1 = Label::createWithTTF("My Game", "Marker Felt.ttf", 36); label1->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2)); scene->addChild(label1); auto sprite1 = Sprite::create("mysprite.png"); sprite1->setPosition(Vec2(100, 100)); scene->addChild(sprite1);

运行这段代码就会看到一个简单的场景,里面有一个标签和一个精灵。当然,这仅仅只是万里长征的第一步。

多个场景的切换

在游戏中肯定需要在不同的场景之间切换,比如开始一个新游戏、游戏进入下一章以及退出游戏的时候都需要用到,Cocos2d-x提供了多种形式的切换方式。

Ways to transition between Scenes 几种场景切换的方式

场景切换的方式有好多种,每种切换方式都有特有的功能,比如下面这个:


1

auto myScene = Scene::create();

runWithScene -只能用于第一个场景的运行,这也是启动游戏第一个场景的方式。


1

Director::getInstance()->runWithScene(myScene);

replaceScene -直接替换一个场景。


1

Director::getInstance()->replaceScene(myScene);

pushScene -暂停执行当前正在运行的场景,把它放入暂停场景的堆栈之中,使用该方法必须要求当前有正在运行的场景。


1

Director::getInstance()->pushScene(myScene);

popScene - 用堆栈中的场景替换正在运行的场景,正在运行的场景会被移除,该方法也要求当前有正在运行的场景。


1

Director::getInstance()->popScene(myScene);

场景切换特效

在场景切换时可以增加一些特效:


1

auto myScene = Scene::create(); // Transition FadeDirector::getInstance()->replaceScene(TransitionFade::create(0.5, myScene, Color3B(0,255,255))); // FlipXDirector::getInstance()->replaceScene(TransitionFlipX::create(2, myScene)); // Transition Slide InDirector::getInstance()->replaceScene(TransitionSlideInT::create(1, myScene) );

时间: 2024-08-02 23:40:22

创建和转换场景的相关文章

07.spritekit征程——创建第一个场景

07.SpriteKit征程--创建第一个场景 Sprite Kit 的内容被放置于窗口当中,即那些可视内容.Sprite Kit 之中的内容由SKView 类进行渲染(注:一般将普通的UIView转换成SKView是这么写的let skView = self.view as SKView ).由SKView 对象渲染的内容称之为场景,也就是Scene,它隶属于SKScene类.场景作为一个root node 又继承于UIResponder类,因此它能够响应用户的输入,当然还有其他丰富的内容使得

Informatica 常用组件Aggregator之四 创建聚合转换

在 Mapping Designer 中选择"转换-创建".选择聚合转换. 为聚合输入一个名称,并单击"创建".然后单击"完成". Designer 创建聚合转换. 将所需端口拖到聚合转换. Designer 将为您包括的每个端口创建输入/输出端口. 双击转换标题栏,以打开"编辑转换"对话框. 选择"端口"选项卡. 单击您希望聚合在创建组时所使用的每列的分组依据选项. 可以选择输入默认值来替换空组. 如果您

第三讲:C++基础语法 & 创建第一个场景 ------学习笔记

C++语法 1.在.H(头文件)文件里面进行声明,在CPP文件里面进行定义: 2.双冒号:: 是一个作用域操作符: //自动回收机制,当不用这个类的时候,自动回收 CREATE_FUNC(HelloWorld); 如何创建一个最简单的场景: 新增一个类: 然后在头文件处输入 #pragma once#include "cocos2d.h" using namespace cocos2d; class MyScene:public CCLayer{public: MyScene(); ~

cocos2d之创建自己的场景类

|   版权声明:本文为博主原创文章,未经博主允许不得转载. 1. 首先创建.h的头文件,然后在将一些图片声音素材加到resource文件夹内,最后在创建.cpp文件:         .h头文件中创建一个类,此类一般继承自Layer,首先有一个静态的创建场景的方法,然后是一个初始化方法,还有一个CREATE_FUNC宏: .cpp中就是对.h中class中定义的方法来进行实现 效果图: 代码: MyGameScene.h: 1 #ifndef _MYGAME_SCENE_H_ 2 #defin

nodejs中Buffer的创建和转换

buffer是用来做什么?主要是用来处理二进制文件流和TCP流的文件缓存区.我们可以将二进制流和string,json,int进行转换,也可以进行复制,或者通过自带的函数进行判断buffer的一些状态. 创建Buffer对象(实例) 1.使用var buffer = new Buffer(size)创建对象,然后用buffer.fill(value,[offset],[end])来初始化对象. 2.使用var buffer = new Buffer(array)创建对象. 3.使用var buf

【淡墨Unity3D Shader计划】一间 创建一个游戏场景 & 第一Shader写作

本系列文章由@浅墨_毛星云 出品.转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/40723789 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 邮箱: [email protected] 作为一个系统介绍Unity3D中Shader编写的系列文章的开篇.本文的第一部分为系列文章的前言,然后第二部分介绍了这个系列文章中我们会使用的游戏场景创建方式.最后一部分解说了怎样在U

Informatica 常用组件Source Qualifier之 创建SQ转换

可以配置 Designer 在您将源拖到映射中时默认创建源限定符转换,您也可以手动创建源限定符转换. 默认创建源限定符转换 可以配置 Designer 在您将源拖到映射中时自动创建一个源限定符转换. 要自动创建源限定符转换: 在 Designer 中选择"工具-选项". 选择"格式"选项卡. 在"工具"选项中,选择 Mapping Designer. 打开源时选择"创建源限定符". 手动创建源限定符转换 可以在 Mapping

javaScript 中创建json/转换字符串为json

在js 中创建创建json 对象: 1.直接定义json 对象 var employees = [ { "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thom

Informatica 常用组件Lookup之十 创建查找转换

在 Mapping Designer 中选择"转换-创建".选择查找转换.输入转换名称.查找转换的命名惯例是 LKP_TransformationName.单击"确定". 在"选择查找表"对话框中,您可以选择以下选项: 选择现有表或文件定义. 选择从关系表或文件导入定义. 跳过以创建手动定义. 为每个需要定义的查找条件定义输入端口. 对于未连接查找转换,请为需要从查找返回的值创建一个返回端口. 为需要传递到其它转换的值定义输出端口. 对于使用动态