You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Phaser3中如何监听down按键的单次key up释放触发事件?

Phaser3 方向键释放单次触发事件实现方法

Phaser3 本身已经内置了你需要的单次释放回调能力,cursors.right 属于 Phaser.Input.Keyboard.Key 实例,直接通过事件绑定即可实现仅在按键释放时触发一次的逻辑,不需要轮询isUp属性。

你之前使用isUp出现重复执行的原因是:isUp是状态属性,只要按键处于抬起状态,每帧轮询都会命中判断,自然会重复运行逻辑,而事件监听仅会在「按键从按下切换为抬起」的瞬间触发一次,完全匹配需求。


实现示例

  1. 在场景的create生命周期内完成事件绑定(不要在update里绑定,会重复注册回调)
function create () {
  // 初始化方向键控制实例
  const cursors = this.input.keyboard.createCursorKeys();

  // 绑定右键释放事件,每次释放都会触发一次回调
  cursors.right.on('up', () => {
    // 此处写入你要执行的释放逻辑
    console.log('右键已释放');
  });

  // 若只需第一次释放时触发一次,后续不再响应,可以用once方法
  // cursors.right.once('up', () => {
  //   console.log('右键首次释放,此回调仅执行一次');
  // });
}

补充说明

如果后续需要解绑释放事件,需要先把回调函数存为独立变量,再调用off方法:

// 回调存为独立变量
const onRightUp = () => { console.log('右键释放') }
// 绑定事件
cursors.right.on('up', onRightUp)
// 解绑事件
cursors.right.off('up', onRightUp)

内容的提问来源于stack exchange,提问作者xetra11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:36:09