gpt4 book ai didi

Java lwjgl 键盘处理程序

转载 作者:搜寻专家 更新时间:2023-11-01 03:21:23 26 4
gpt4 key购买 nike

我创建了一个类,它接受 lwjgl 的键盘输入并将其转换为一个字符串列表,其中包含当前按下的所有键。

public class KeyHandler {

ArrayList<String> keysPressed;

public KeyHandler() {
keysPressed = new ArrayList<String>();
}

public void checkKeys() {
while (Keyboard.next()) {
String keystring = Keyboard.getKeyName(Keyboard.getEventKey());
if (!keysPressed.contains(keystring)) {
keysPressed.add(keystring); // key has been pressed
} else {
keysPressed.remove(keystring); // key has been released
}
}
}

public void runKeys() {
if (keysPressed.size() > 0) {
for (String str : keysPressed) {
System.out.println("Key handler got key:" + str);
// run class for key
}
} else {
// no keys have been pressed
}
}

}

例如,我正在尝试找出一种方法,以便“runKeys”将运行具有该名称的类。

W.java

public class W {

public static void exc() {
player.moveZ(10);
}

}

这样做的原因是为了避免运行 50 多个 if 语句来检查输入

最佳答案

  • 创建 Map<Character, Consumer<Character>> .
  • 为实现Consumer<Character>的每个角色创建一个类界面。
  • 将这些类的对象存储在 map 中。
  • 使用您检测到的击键字符调用 map 上适当的消费者对象。

希望这对您有所帮助。

关于Java lwjgl 键盘处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29873502/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com