如何为游戏左Shift按键添加Cooldown(冷却)功能?
给左Shift冲刺功能添加冷却机制
要解决连点Shift滥用冲刺的问题,只需添加冷却状态变量限制触发频率,以下是修改后的代码:
// 在合适的作用域内定义冷却相关变量(避免每次调用Input都重置) let canBoost = true; const boostCooldown = 1000; // 冷却时长,单位毫秒,可根据游戏节奏调整 function Input() { document.addEventListener('keydown', (event) => { var name = event.key; var code = event.code; if (code == "ArrowRight" || code == "KeyD") { velX += 5 } if (code == "ArrowDown" || code == "KeyS") { velY += 5 } if (code == "ArrowUp" || code == "KeyW") { velY -= 5 } if (code == "ArrowLeft" || code == "KeyA") { velX -= 5 } // 仅当冷却结束时才允许触发冲刺 if (code == "ShiftLeft" && canBoost) { velX *= 2 velY *= 2 // 锁定冲刺功能,启动冷却计时器 canBoost = false; setTimeout(() => { canBoost = true; }, boostCooldown); } }, false); }
核心逻辑说明
canBoost:布尔变量,标记当前是否允许使用冲刺,初始为true(可使用状态)boostCooldown:自定义冷却时长,示例设为1秒,可根据游戏需求调整数值- 触发左Shift时先检查冷却状态,允许的话才执行冲刺逻辑,随后立刻锁定冲刺,冷却时间结束后自动解锁
内容的提问来源于stack exchange,提问作者lynks
相关产品推荐
相关产品推荐

