gpt4 book ai didi

java - Java 中的切换键

转载 作者:行者123 更新时间:2023-12-01 14:33:54 25 4
gpt4 key购买 nike

基本上我试图在每次按下 F1 键时切换 boolean 值。在我的主类中,我有每秒调用 60 次的更新方法,我编写了如下代码:

主类:

private Keyboard key = new Keyboard; // keyboard object
boolean debug; // boolean to control visibility of debug screen
private boolean toggle; // used to toggle boolean

private void update() { // update is called 60/s
if (key.isKeyPressed(Keyboard.f1) && !toggle) {
debug = !debug;
toggle = true;
} else if (!key.isKeyPressed(Keyboard.f1)) toggle = false;
}

键盘.类:

public class Keyboard implements KeyListener {

private boolean[] keys = new boolean[65536];

public static final int f1 = KeyEvent.VK_F1; // key code of f1 key

public void keyPressed(KeyEvent e) {
keys[e.getKeyCode()] = true;
}

public void keyReleased(KeyEvent e) {
keys[e.getKeyCode()] = false;
}

public void keyTyped(KeyEvent e) {
}

public boolean isKeyPressed(int key) {
return keys[key];
}

这样它就可以完美工作,但是如果我在 Keyboard.class 中创建类似的方法,它就不起作用:

主类中的更新方法:

private void update() {
key.toggle(Keyboard.f1, debug); // toggle boolean debug if f1 key pressed, but.. NOT WORKING!! WHYYY!!?
}

键盘.类:

private boolean toggle;

public void toggle(int key, boolean b) {
if (isKeyPressed(key) && !toggle) {
b = !b;
toggle = true;
} else if (!isKeyPressed(key)) toggle = false;
}

我的问题是:为什么第二种方法不起作用以及如何修复它以使其工作?谢谢!

最佳答案

谢谢MadProgrammer,你是对的! ;D

主类:

private void update() {
debug = key.toggle(Keyboard.f1, debug);
}

键盘.类:

private boolean toggle;

public boolean toggle(int key, boolean b) {
if (isKeyPressed(key) && !toggle) {
b = !b;
toggle = true;
} else if (!isKeyPressed(key) && toggle) {
toggle = false;
}
return b;
}

现在它返回了我想要的值,谢谢,我完全忘记了。有没有更好/更简单的方法来做到这一点?

关于java - Java 中的切换键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16641037/

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