第五章:创建和转换场景

第五章:创建和转换场景,第1张

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

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

创建场景

创建场景很简单:

1 auto myScene = Scene::create();

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

场景使用范例

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

1 2 3 4 5 6 7 8 9
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 几种场景切换的方式

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

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

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

replaceScene -直接替换一个场景。

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

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

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

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

Director::getInstance()->popScene(myScene);
场景切换特效

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

4
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) );
总结

以上是内存溢出为你收集整理的第五章:创建和转换场景全部内容,希望文章能够帮你解决第五章:创建和转换场景所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1028709.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存