cocos creator 2.4.5 2D RPG 无限滚动背景实现

Posted LANGZI7758521

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cocos creator 2.4.5 2D RPG 无限滚动背景实现相关的知识,希望对你有一定的参考价值。

要点:

  • 场景默认自带一个Camera,渲染场景内所有的物体

  • Camea节点可以看做是一个空节点下挂接一个Camea组件,所以本身不可见

  • 每个场景都可以有多个Camera,通过关联组名来分组渲染

  • 多个Camera的渲染层级符合节点树规则,先按Camera节点的层级分优先级,越下面的Camera,其关联的组越后渲染;同一Camera分组下的节点,越下面的节点越后渲染。越后渲染的节点看起来越接近顶层。

案例

Camera 实践:无限视差滚动地图实现

一、Camera分组渲染

在Cocos Creator 的菜单`项目`->`项目设置`->`分组管理`中更改或添加分组,跟物理碰撞的分组管理是同一设置。

在场景添加多个 Camera,然后在“分组管理”添加多个分组,然后设置 Camera 的 cullingMask 属性为对应的分组,每个Camera渲染的对象就是通过这个cullingMask来过滤的。

步骤如下:

1、创建 Camera 节点。在层级管理器中创建一个空节点,在这个节点上添加一个 Camera 组件,这样一个Camera节点就创建好了。按照这个方法添加两个 Camera 节点,FarCamera 和 NearCamera,分别用来渲染远景和近景。

空节点

添加摄像机

2、分组管理。在分组管理里面添加两个分组,nearbg 和 farbg。

添加分组

3、添加近景和远景节点,分别设置 Group名称

远景

近景

4、设置 Camera 的 cullMask属性,FarCamera 设置为 farbg,NearCamera 设置为nearbg。

远景摄像机

近景摄像机

到这里多摄像机和分组渲染设置完成了,运行模拟器可以看到界面。

运行结果

二、视差原理

视差背景有两种方式,传统方式是观察点不变,移动近景和远景地图,控制近景和远景地图移动的速度不同产生视差,就形成了无限滚动的视差背景。

但是我们这里讲的是相反的过程,背景图片固定不动,移动观察点(摄像机)。由于运动的相对性,背景图片就相对向相反方向移动。

原理一

如图所示,摄像机不断移动,很快就会超过farbg1的可视边界,所以要做两个背景图,当移动到farbg1的边界时,将另一张相同的背景挨着farbg1的边界放下,这样不断交替设置farbg的位置,就能无限滚动。

原理一

同样的原理设置近景,背景的移动速度跟Camera移动的速度大小相等方向相反,两个Camera移动的速度有差异就形成了无限滚动视差背景。

三、静景

有一些元素是不动的,我们称之为静景,比如太阳,月亮,挂在天上不动,如何实现?

其实很简单,用一个Camera渲染它们,Camera不移动就好了。

实现方式:新增分组 celestial,将 MainCamera 开启,然后设置 cullingMask 为 celestial,添加一个 sun 节点,分组设为 celestial。

还有的时候,对于游戏里面的人物,需要单独设置一个摄像机进行渲染,这样可以方便做一些镜头特效,比如镜头跟随,镜头缩放等,这个将在其他文章详细讲解,请关注本公众号。

实现方式:项目设置里面新增分组player,在场景编辑器新增一个player节点用来做人物跑动,分组设为player。场景编辑器新增一个节点,命名为PlayerCamera,添加一个Camera组件,cullingMast设置为player。

PlayerCamera只渲染一个player节点,这样看到界面上人物一直在跑,其实人物根本没有动,只不过是背景的Camera在移动而已。

最终效果:

效果预览

源码下载链接:https://download.csdn.net/download/LANGZI7758521/20462453

以上是关于cocos creator 2.4.5 2D RPG 无限滚动背景实现的主要内容,如果未能解决你的问题,请参考以下文章

初入Cocos Creator碰到的坑

Cocos Creator 2D摄像机 [Lv.2] 截图

Cocos Creator 2D摄像机 [Lv.2] 截图

Cocos Creator 2D摄像机 [Lv.2] 截图

如何评价cocos creator,与unity比的优劣势

Cocos Creator 2D摄像机 [Lv.1] 小视图