跑酷P3 移动重置和地图滚动

跑酷游戏 第三集

本集中,我们对移动的逻辑进行了大规模的调整优化,并且实现了地图滚动,让人物保持在屏幕中间的效果。

移动优化

为了完成屏幕滚动的效果,我们的逻辑部分优化比较多,首先删除掉人物部分我们之前的代码。
我新新的代码啊
变量也只保留场景编号正在跳跃重力三个变量。然后我们创建几个新变量,私有变量x坐标y坐标,全局变量滚动x坐标滚动y坐标,在游戏开始时初始化这些变量。

接下来我们让玩家角色进行移动。还是按下方向键改变对应的坐标,但是这次我们直接改变对应的变量。因为我们的移动需要借助多个变量完成。

场景滚动

接下来我们把代码拖动到场景角色里,对应的修改一下场景的移动。

此时我们移动滚动x坐标滚动y坐标变量,就会发现地图和场景一起移动了。那么我们如何让人物保持在中间位置?让滚动x坐标随着人物的x坐标一起更改就可以了。

但是目前只有一个地图在跟着我们进行滚动。我们要实现多个场景,就需要用到克隆的功能。我们把对应的场景克隆后,向右移动一个屏幕的距离480,然后再克隆。我们可以让本体隐藏,只让克隆体显示。

这里大家可以发现我们其他部分的地图总是在屏幕的边缘露出一点,我们可以调整编辑器的设置来让在屏幕外面的地图完全隐藏。

跳跃部分

接下来我们做跳跃功能。还是当按上键时,让角色跳跃。为了实现重力的功能,我们新建一个私有变量y速度,当按下跳跃键时把y速度设定为16,然后在重力的影响下减少。对于这个过程,我们用一个自制积木实现,其名为垂直移动,需要一个变量y速度。

在自制积木里设定y坐标的变化,然后移动到对应位置,不要忘了在角色的重复执行里调用自制积木。

之后我们来完成人物停止在地图上的逻辑,和之前一样,我们加一个重复执行直到没有碰到地图就可以了。

测试后我们发现,人物的y坐标还是一直在变化,我们需要在变化之后移动,并且把y速度重置为0。由于我们多次使用了移动模块,所以我们把移动的部分也新建一个自制积木放进去,这样之后需要移动的时候直接调用积木就可以了。

现在我们发现跳跃的时候,人物在碰到平台的下沿的时候会直接“传送”到平台上面。这是因为当人物碰到平台的下沿,我们的重复执行直到也会生效。我们给重复执行再加一个条件。

但是此时我们曾经遇到过的问题,角色会“吸在”平台上面的问题又出现了,这和连跳的问题有关系。我们用之前使用过的变量正在跳跃来解决。开始时设定为1,在着地时设定为0,在跳跃后再设定为1。

水平移动优化

还有一个之前出现过的问题,水平移动的时候会自动往上跳,这是因为垂直移动的判断导致的。我们还是增加一个对水平移动的判断就可以了。复制一下垂直运动部分的代码,稍作修改即可。

在自建积木完成之后,需要修改一下水平移动的逻辑,让水平移动调用积木。

切换造型

最后我们切换人物行走时候的造型。但是当我们重复执行没有操作的时候切换造型1,自动跳跃的bug又出现了,这是因为造型1的体积比走路时的造型3,4体积要大,切换造型后碰撞到场景,又被判断了上升。这里我们可以只让角色初始为造型1,移动后就不更改造型了。

总结

本集课程中,我们对所有的移动逻辑进行了修改和重新编写,上一集中我们留下的一些问题比如在墙壁上可以连跳的问题在这里都被解决了。并且我们还实现了地图滚动的功能,让我们的游戏画面更加自然了。

posted @ 2025-03-20 09:53  AnzioNiko  阅读(57)  评论(0)    收藏  举报