← 全部概念
操作手感 / 16
加速度与摩擦
速度逐渐增加,也逐渐减小
交互演示
交互演示 · 移动指针或点击画面,观察变化
加速度与摩擦让当前速度以每秒规定的变化量逐渐接近输入所对应的目标速度,而不是在一帧内直接设定。下方角色在 0.2 秒内达到全速,松开按键后 0.1 秒内停止,输入反向时则以两倍力度制动。上方角色直接把输入转换成速度,因此速度曲线呈方波,起步、停止和转向都在一帧内完成。
适用场景
用加速度让移动逐渐提速,用减速度控制玩家停下来的快慢。分别设置地面、空中和反向移动时的变化速率,可以塑造不同的操作手感。
实现示例
不依赖特定引擎的伪代码。请根据你使用的引擎调整函数和坐标约定。
target = inputAxis * maxSpeed
rate = acceleration if inputAxis != 0 else deceleration
if target * velocity.x < 0: rate = reversalRate
velocity.x = moveTowards(velocity.x, target, rate * dt)常见错误
角色控制器中的减速度设置不一定等同于物理摩擦。应使用一致的单位,并在多种帧率下测试反向移动、空中转向和斜坡表现。
内容原作 Nicolas Zullo · 中文整理与交互改编