下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

Cocos2D-X场景教程:游戏场景的切换方法

作者:课课家教育     来源: http://www.kokojia.com点击数:1448发布时间: 2019-03-28 10:16:17

标签: Cocos2D-X场景Cocos2D-X开发Cocos2D-X教程

  在游戏开发中场景切换是最常见的几种操作之一,那么我们在Cocos2d-x中又该如何操作呢?本篇教程将告诉你怎样在Cocos2D-X中进行游戏场景切换。

  简单的说来,一个游戏中包含的主要元素就是导演,场景,层,精灵,其实就是和拍戏一样,导演负责按“剧本”控制场景、层和精灵(演员),这“剧本”当然是我们自己设计的,比如:有什么角色演员,什么样的场景下演员可以或者应该做什么动作……而导演负责执行和控制这些元素将“剧本”以动态可视化的表现形式展现出来,最后看起来就像一部“电影”。

  场景和层都可以看作是一个容器,场景可以用来包含层和精灵,而层可以用来包含精灵或者其它层。层是有层级的,就像photoshop中处理图象时用来独立控制某个或者某组元素显示效果所使用的层,层级越高,在场景中的显示权重就越高,就是拍戏中的主角一样,曝光率就越高。

  场景切换在游戏中常用于关卡或者地点场景的切换,负责控制切换的理所当然地就是导演类CCDirector了,在cocos2d-x中包含了普通场景切换和带效果的场景切换两种方式,有人说带效果的场景切换就是对普通场景的一个包装,其实再说具体点,就是在一个场景被替换或者创建加载的时候用一个切换效果函数改变这个场景消失或者显示的动画过程(如渐变退出或者渐变显示),所以可以在源代码里看到有些是用了action作为场景过渡的动画效果。

  在CCDirector中常用的替换场景的方法有三个:

Cocos2D-X场景教程:游戏场景的切换方法_Cocos2D-X场景_Cocos2D-X开发_Cocos2D-X教程_课课家

  这里需要注意的就是,在关于pushScene()的代码说明中写明了,应该尽量避免将一个大的场景压入堆栈中以减少内存的占用,所以常用的一般都是replaceScene(),当替换的场景没有使用切换效果时就是普通的场景切换,否则会按设定的效果进行场景的切换,cocos2d的场景切换效果有很多,这里就不多说了,可以直接进源代码里看。下面是场景切换的示例,在这里引用了testCPP中的一些数据,因为官方原例过于复杂,所以这里抽出主要的东西来说:

  首先是需要两个场景,第一个场景其实在创建工程的时候就已经创建了,可以自行定义第二个场景和装有精灵的层。

  代码如下:

  当然,上面的代码都是从原例中拷过来修改成的,可以看到上面有过渡事件,可以根据需求在里面写代码,原例是加了个输出日志,然后下面是CPP代码的重写,用来添加精灵(控件图片什么的):

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程