← 全部概念
操作手感 / 15
输入缓冲
提前按下,也能生效
交互演示
交互演示 · 移动指针或点击画面,观察变化
输入缓冲会把一次按键保留一小段时间,通常约为 0.1 秒,并在动作首次具备执行条件的那一帧执行它。玩家经常在落地前几帧就按下跳跃;没有缓冲,游戏会因为角色仍在空中而丢弃这次输入。这里两个角色都在落地前 0.08 秒按下跳跃,只有带 0.1 秒输入缓冲的角色在接触地面的那一帧立即起跳。
适用场景
如果希望按键后,在动作首次满足条件的那一帧执行它,可以使用短时输入缓冲。常见用途包括在落地前提前按下跳跃,以及在攻击后摇快结束时预先输入下一次攻击。
实现示例
不依赖特定引擎的伪代码。请根据你使用的引擎调整函数和坐标约定。
if jumpPressed: buffer = 0.1
else: buffer = max(0, buffer - dt)
if canJump and buffer > 0:
jump()
buffer = 0常见错误
每次输入只能消耗一次。输入缓冲不同于反复读取持续按住的按键;缓冲时间过长,还可能触发玩家已经不想执行的动作。
内容原作 Nicolas Zullo · 中文整理与交互改编