java - 检查数组中的多个值

标签 java slick2d

我目前正尝试在 Slick2d 框架中制作一个小型聊天游戏。该框架有一个名为

isKeyPressed()

还有一长串我可以用来检查的变量。例如:

input.KEY_A

目前我可以注册一封信的唯一方法是拥有这些检查器的完整列表:

if (input.isKeyPressed(input.KEY_A)) {
    this.text += "a";
}
if (input.isKeyPressed(input.KEY_B)) {
    this.text += "b";
}
if (input.isKeyPressed(input.KEY_C)) {
    this.text += "c";
}

有没有更聪明的方法可以做到这一点?

我可以想象我能够以某种方式将 input.KEYS 存储在数组中,但我不确定这是否是正确的方法,甚至不确定如何实现它。

最佳答案

你可以使用 a HashMap存储映射 (!) - 假设 KEY_XX 是整数,例如,它可能看起来像这样:

private static final Map<Integer, String> mapping = new HashMap<Integer, String> () {{
    put(input.KEY_A, "a");
    put(input.KEY_B, "b");
    //etc
}};


for (Map.Entry<Integer, String> entry : mapping.entrySet()) {
    if (input.isKeyPressed(entry.getKey()) this.text += entry.getValue();
}

如果 map 始终相同,则可以将其设为静态,这样您只需填充一次。
注意:如果您有 input.getKeyPressed() 方法或类似方法,这可能会更有效。

关于java - 检查数组中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13702634/

相关文章:

java - 递归表达式的 ANTLR 语法

java - 字符串变量可能尚未初始化

java - 解决二维游戏碰撞(多边形)

java - slick2d(lwjgl)、nifty、kryonet - 如何构建 .jar?

java - Riak(Java客户端)突然停止创建二级索引

Java枚举构造函数错误

Java - 从匿名类内部访问循环计数器

clojure - Leiningen 和 Clojure 依赖项

java - 运行 Maven 测试时 Eclipse 中出现错误 : no lwjgl64 in java. library.path

java - 解析 Jar 中的 XML 文件