大家好!本篇主要分享竖版跑酷动作类游戏—《峭壁逃亡》的开发,游戏模拟了悬崖攀登的过程,游戏的目标是尽可能攀到最高的高度,玩法如下面视频所示:
这里是游戏H5在线体验:
http://game.ixuexie.com/RockyClimbPlus/
玩家角色会以一只手作为轴心旋转,当另一只手接近上方石头时,看准时机触屏,就可以使角色抓住新的石头,如果点击时游戏角色的手距离石头不够近,角色会掉下悬崖,游戏失败。
同时玩家不能在一个石头上停留太长时间,因为在下方还有水位追赶,如果水位淹到头的位置,同样视为游戏失败。
在项目实际开发时,经过分析归纳了以下两个主要的问题:
如何生成无尽关卡数据和处理画面表现层
角色抓取石头和表现细节方面的问题:角色坠崖,落水,溺亡...等
1
生成无尽关卡
既然是无尽关卡,和所有无尽跑酷游戏一样,关卡数据都是在游戏过程中分阶段生成的,换一种说法,就是根据游戏角色当前所处的位置,预先生成下一可视范围的数据,防止玩着玩着关卡就断片了...
不过在说明关卡数据生成前,我们先确定一个更基础的问题:
在游戏角色攀爬过程中,到底是让角色运动?还是让关卡背景运动?
稍微思考一下,好像不管是哪种情况,都需要去处理拼接背景在视觉上铺满屏幕的问题。
这里我们采用了一种方法规避背景拼接问题:
将关卡分为背景和前景,背景只有一张图,始终不移动
前景节点上挂实时生成的石头及其它关卡装饰物,并且游戏角色也在前景节点下移动
滚屏时,只需要移动前景节点
定下这种节点结构后,滚屏的实现就很方便了,代码如下: