gpt4 book ai didi

java - 如何获取任意按下的键值

转载 作者:行者123 更新时间:2023-11-30 06:43:16 25 4
gpt4 key购买 nike

我正在尝试使用 libgdx 开发某种打字训练器,但遇到了此类问题。我需要一种方法来检测用户按下的键,而不是显示它(如果是字母)或清除输入(如果是空格键)。我想出了这个解决方案:

StringBuilder typeArea = new StringBuilder();
if (Gdx.input.isKeyJustPressed(Input.Keys.A)) {
typeArea.append(Input.Keys.toString(Input.Keys.A));
} else if (Gdx.input.isKeyJustPressed(Input.Keys.B)) {
typeArea.append(Input.Keys.toString(Input.Keys.B));
} else if ... {
...
} else if (Gdx.input.isKeyJustPressed(Input.Keys.SPACE)) {
typeArea.setLength(0);
}

感觉应该有更优雅的方式。我正在寻找这样的东西:

String letters = "abcdefg...";
StringBuilder typeArea = new StringBuilder();
if (Gdx.input.isKeyJustPressed(Input.Keys.ANY_KEY)) {
if (letters.indexOf(getKeyPressedValue()) >= 0) {
typeArea.append(getPressedKeyValue());
} else if (getKeyPressedValue() == Input.Keys.SPACE) {
typeArea.setLength(0);
}
}

或者也许还有另一种更简单的方法来做到这一点。有什么建议吗?

最佳答案

您可以创建自己的 InputListener 并重写 keyDown 方法,该方法通过事件发送键码。

InputListener il = new InputListener(){
@Override
public boolean keyDown(InputEvent event, int keycode) {
typeArea.append(Keys.toString(keycode));
return super.keyDown(event, keycode);
}
};

或者您可以实现一个 InputProcessor 并使用其中的 Override the KeyDown 方法。

在您的类中实现 InputProcessor 接口(interface),然后将输入处理器设置为您的类

Gdx.input.setInputProcessor(this);

并重写 keyDown 方法

@Override
public boolean keyDown(InputEvent event, int keycode) {
typeArea.append(Keys.toString(keycode));
return super.keyDown(event, keycode);
}

关于java - 如何获取任意按下的键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44041775/

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