我正在尝试制作键盘,一切正常。我只是想在每次点击后打破if语句以停止char的重复性。我不想使用布尔值,因为用户可以多次输入相同的字符。这是图像监听器
a = new Image(new Texture("Sprites/Keyboard/a.png"));
a.addListener(new InputListener(){
@Override
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
apressed = true;
return true;
}
@Override
public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
apressed= false;
}
});
这就是我在活动或州内的更新中所拥有的。
@Override
public void handleInput() {
if (keyboard.apressed) {
builder.append('A');
currentWord = builder.toString();
//break; here doesn't work. says its outside the loop.
}
}
所以理论上这就是我想要但不能使用的原因因为我猜测它对每一个字母都有用吗?
@Override
public void handleInput() {
if (keyboard.apressed) {
builder.append('A');
currentWord = builder.toString();
try {
TimeUnit.MILLISECONDS.sleep(400);
} catch (Exception e) {
System.out.println("error");
}
}
任何想法?提前谢谢。
答案 0 :(得分:0)
我使用LibGDX TextButtons制作了自己的键盘。由于您使用的是图像而不是文本,因此可以使用ImageButton。然后我使用ChangeListener和changed()方法,因为它只在按下并释放按钮后触发,这样可以避免在按下按钮时出现重复的字符。
keyButton.addCaptureListener(new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor){
// key logic here