Java 如何检查键盘上的单个按键?
我想不出怎样才能使这个条件发挥作用。是否有类似于Keyboard.isKeyDown(//anykey)的条件Java 如何检查键盘上的单个按键?,java,lwjgl,Java,Lwjgl,我想不出怎样才能使这个条件发挥作用。是否有类似于Keyboard.isKeyDown(//anykey)的条件 import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; public class InputHandler { public static boolean currentKeyState, previousKeyState; public static void update() {
import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse;
public class InputHandler {
public static boolean currentKeyState, previousKeyState;
public static void update() {
previousKeyState = currentKeyState;
if (//condition for keydown) {
currentKeyState = true;
} else {
currentKeyState = false;
}
}
public static boolean keyReleased() {
if (currentKeyState == true && previousKeyState == false) {
return true;
} else {
return false;
}
}
}
这是我试图实现的C版本。Java中是否有类似于Keyboard.GetState()的方法
}您可以为此使用java KeyEvent类
if (Keyboard.getEventKey() == Keyboard.KEY_A) {
if (Keyboard.getEventKeyState()) {
System.out.println("A Key Pressed");
}
else {
System.out.println("A Key Released");
}
}
你可以参考
用于获取所有输入法
有关支持的所有键,请参阅
}我发现这是检查事件驱动输入的最简单方法:
while (Keyboard.next()) {
if (Keyboard.getEventKeyState()) {
switch (Keyboard.getEventKey()) {
// case Keyboard.KEY_UP: /** do something here **/ break;
}
}
}
他要的是LWJGL。。。我怀疑java KeyEvent是否会起到关键作用。。。他们一定有自己的api更适合他们的需要(游戏)。但是我可以替换Keyboard.KEY_A来获得任何键盘输入吗?我已经编辑了我的答案,我对这个答案没有任何想法,但我仍然认为我可以提供一些东西!您的C#
IsPressed()
方法可以编写为return(currentKeyState.IsKeyDown(键)和&previousKeyState.IsKeyUp(键))代码>。Java中的所有其他方法也是如此。节省大量打字和空间;)
import org.lwjgl.input.Keyboard;
public class InputHandler {
public static boolean currentKeyState = true, previousKeyState;
public static void update() {
previousKeyState = currentKeyState;
if (Keyboard.getEventKeyState()) {
currentKeyState = true;
} else {
previousKeyState = false;
}
}
public static boolean keyPressed() {
if (currentKeyState == true && previousKeyState == true) {
return true;
} else {
return false;
}
}
while (Keyboard.next()) {
if (Keyboard.getEventKeyState()) {
switch (Keyboard.getEventKey()) {
// case Keyboard.KEY_UP: /** do something here **/ break;
}
}
}