Java 当按下键盘按钮而不是循环时,如何使一个动作发生

Java 当按下键盘按钮而不是循环时,如何使一个动作发生,java,button,keyboard,lwjgl,Java,Button,Keyboard,Lwjgl,此位在每次渲染时都会运行,因此在按下按钮时显然会进行检查。我希望能够按下它一次,并且只执行一次,直到我取下手指并再次按下它 这是怎么做到的?我正在用java编程。我建议您看看这些: 您可以创建一个实现Keylisterner接口并扩展Observable类的类。可以让类及其渲染循环实现Observer接口。如果使渲染类成为keylistener类的观察者,则可以让keylistener调用包含以下内容的方法: if(Keyboard.isKeyDown(Keyboard.KEY_I))

此位在每次渲染时都会运行,因此在按下按钮时显然会进行检查。我希望能够按下它一次,并且只执行一次,直到我取下手指并再次按下它


这是怎么做到的?我正在用java编程。

我建议您看看这些:

您可以创建一个实现Keylisterner接口并扩展Observable类的类。可以让类及其渲染循环实现Observer接口。如果使渲染类成为keylistener类的观察者,则可以让keylistener调用包含以下内容的方法:

    if(Keyboard.isKeyDown(Keyboard.KEY_I)) {
        if(ms != MenubarState.INVENTORY) ms = MenubarState.INVENTORY;
        else ms = MenubarState.CLOSED;
    }

当按下正确的键时,只需一次。

我建议您看看这些:

您可以创建一个实现Keylisterner接口并扩展Observable类的类。可以让类及其渲染循环实现Observer接口。如果使渲染类成为keylistener类的观察者,则可以让keylistener调用包含以下内容的方法:

    if(Keyboard.isKeyDown(Keyboard.KEY_I)) {
        if(ms != MenubarState.INVENTORY) ms = MenubarState.INVENTORY;
        else ms = MenubarState.CLOSED;
    }

当按下正确的键时,只需按一次。

LWJGL附带一个键盘。getEventKeyState();如果按下该键,则为真,否则为假

if(ms != MenubarState.INVENTORY) ms = MenubarState.INVENTORY;
    else ms = MenubarState.CLOSED;

它的作用是检查钥匙是否被按下。如果没有,则菜单栏将关闭。

LWJGL附带一个键盘。getEventKeyState();如果按下该键,则为真,否则为假

if(ms != MenubarState.INVENTORY) ms = MenubarState.INVENTORY;
    else ms = MenubarState.CLOSED;

它的作用是检查钥匙是否被按下。如果没有,则菜单栏将关闭。

您只需记住是否执行了该操作:

if(Keyboard.isKeyDown(Keyboard.KEY_I)) {
    if(Keyboard.getEventKeyState())
        ms = MenubarState.INVENTORY;
    else ms = MenubarState.CLOSED;
}

如果您执行了该操作,您可能还记得:

if(Keyboard.isKeyDown(Keyboard.KEY_I)) {
    if(Keyboard.getEventKeyState())
        ms = MenubarState.INVENTORY;
    else ms = MenubarState.CLOSED;
}

这似乎有点牵强,两个新类?这似乎有点牵强,两个新类?我不知道这是否符合我的要求。Keyboard.getEventKeyState总是返回false。我不知道这是否符合我的要求。Keyboard.getEventKeyState总是返回false。这是我考虑过的一种方法,尽管对于多个按钮,它可能会变得混乱。您可以将其包装在自己的类或方法中,以使其更具可读性这是我考虑过的一种方法,虽然对于多个按钮,它可能会变得混乱,但您可以将其包装在自己的类或方法中,以使其更具可读性