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

双人游戏开发中如何使用方向键作为输入并解决字符常量格式错误

问题原因
  1. 语法报错直接诱因:'LEFT'属于非法字符常量写法,单引号仅支持包裹单个字符,LEFT/RIGHT/UP/DOWN是Processing预定义的整型特殊键码常量,不属于普通可打印字符,既不能用单引号包裹,也无法存储到char类型变量中。
  2. 原有逻辑缺陷:当前按键监听逻辑仅处理了普通字符类按键,没有适配方向键这类特殊编码按键。Processing中特殊按键触发时key变量会被赋值为CODED,必须读取keyCode变量才能拿到正确的键值。
修复步骤
  • 修改Player类中所有按键属性、checkforInputs方法入参的类型,从char改为int。普通可打印字符的ASCII码可无缝兼容int类型,原有普通按键的逻辑无需额外调整。
  • 调整按键监听逻辑,兼容普通按键和特殊编码按键:
void keyPressed(){
  int inputKey;
  if (key == CODED) {
    // 特殊编码按键取keyCode值
    inputKey = keyCode;
  } else {
    // 普通按键转小写后转int
    inputKey = Character.toLowerCase(key);
  }
  for (Player p:g.players){
    p.checkforInputs(inputKey);
  }
}
  • 调整checkforInputs方法的入参类型:
// 入参从char改为int
void checkforInputs(int k){
    if(k == moveLeftKey){
      // 原有移动逻辑保持不变
    }
    // 其余按键判断逻辑无需调整
}
  • 修改Player实例化的传参写法,方向键常量直接传入,不要加单引号:
// 方向键常量不需要加单引号,普通字符可直接传入会自动转为对应int值
players.add(new Player(LEFT, RIGHT, UP, DOWN, '<', '>', 'm')); 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:48:04