跑酷P1 基础移动
跑酷游戏 第一集
本集我们来完成角色的基础移动功能。
地图和重力效果
创建项目之后首先绘制地图。角色我们直接复用RPG探索游戏中的角色,把原本的代码删除掉。

游戏开始时,我们希望角色从空中出生,有一个下落到地图上的效果。我们给角色一个初始位置,然后让它在位置上下落。我们让角色初始移动到半空中的位置,然后重复执行一个减少y坐标的操作。

但是下落的过程和我们想象的不太一样,没有重力导致的加速效果。我们新建一个私有变量y速度,相当于我们角色在y轴上的速度,开始时设定成-1,每一次在重复执行中增加y速度然后移动y速度的值的坐标。关于增加的重力,我们也可以新建一个全局变量重力来存放重力的值。

下降后,我们的任务并没有停在草地上。我们来实现这个功能,如果在下降的过程中碰到了草地,我们就让角色停下来。

这会产生一个问题,角色会有一部分在草地中间。我们用一个不刷新屏幕的自建积木来实现,如果人物碰到了这个颜色,就让人物向上移动,并且重置y速度的值。由于我们在运行时不刷新屏幕,所以操作一瞬间就可以完成。

跳跃和移动
实现跳跃功能的思路很简单,就是在按下跳跃键之后,给人物一个向上的y速度就可以了。

对于左右移动,当按下左右键的时候,给玩家一个对应的x方向的速度就可以。另外我们的角色还有不同姿势的造型,我们一并在移动时应用。在没有按键的时候我们需要让人物停下来,我们就让速度不断乘以0.8做一个平滑的摩擦效果。

总结
本次我们完成了基本的重力和移动逻辑。但是我们留下了一些问题,比如我们跳跃可以一直在天空中飞行不落地,面对障碍物的时候也会直接上去了。我们在之后的教程中优化这部分。

浙公网安备 33010602011771号