Egret开发(七)摄像机跟随

自学开发笔记,有兴趣的同学请关注微信WiGameFun,不定时分享游戏开发相关技术。有不对的地方烦请指点修正。​
Egret开发(七)摄像机跟随

Egret开发(七)摄像机跟随

​摄像机跟随

这一篇来整理学习下游戏中的摄像机跟随效果。什么是摄像机跟随呢?我们用超级玛丽这个横版跑酷游戏来做一下说明,每一关卡玩家需要控制角色移动到最终目标点处并完成响应动作(比如:在一些关卡我们需要把旗子降下来,而在一些关卡可能需要移动到公主身边等等)。关卡中的地图并不是只有屏幕大小,每一关可能都会在横向坐标系上很长,那么当玩家控制的角色移动到屏幕右边缘(或者距离屏幕右边缘一定距离时),我们看到的场景就需要移动,保证后续的游戏场景能够让玩家看到,也就是说我们看到的屏幕窗口就好像一架摄像机,它会随着我们控制的角色移动而移动,确保我们完成后续的游戏操作。而这个过程就是游戏中的摄像机跟随(主角色)效果。
如果上面的文字描述比较拗口,我们再来看看下面这张图,相信能够帮助大家进一步理解这个概念。这里说的摄像机视角实际就是玩家所能看到的场景。

Egret开发(七)摄像机跟随

摄像机跟随原理

接下来我们看看游戏中实现摄像机跟随的原理。实际上要实现摄像机跟随主角移动,只要我们判定当我们的控制的角色到了当前摄像机边缘时,让摄像机往后移动(或者让游戏场景向前移动)即可。

摄像机跟随实现

Egret的摄像机跟随效果已经有很多人实现,大家可以在网上找到,这里我们看看其中一份(下载地址:https://bbs.egret.com/thread-43544-1-1.html,这里谢谢这位网友分享)。

Egret开发(七)摄像机跟随

在这个Camera使用时,我们需要把要跟随的角色、游戏场景(这里实际上应该是包含背景、角色的这个场景,我们在《Egret开发(六)》中有提到过游戏中层级的概念,不清楚的同学可以再回顾下)、摄像机窗口区域传递给Camera以完成后续操作。

这里我们只看下关键部分的代码,如下

Egret开发(七)摄像机跟随

这里我已经按照X轴方向进行了分析如下,Y轴方向原理是类似的,大家可以自行推导一下。

Egret开发(七)摄像机跟随

摄像机跟随效果展示

这里我使用最近在做的坦克大战来模拟当地图配置的大小超过摄像机大小时,摄像机跟随控制角色移动的效果做了一个GIF图。(大家主要看下我们控制的黄色坦克向右移动时摄像机的跟随效果,其他部分可以忽略)。

Egret开发(七)摄像机跟随