我试图做一个基本的计数器,所以每次点击都会增加一个计数器。我可以让柜台工作,但当我按住手指/点击时,它也会疯狂地增加计数。
代码:
public void render() {
boolean isTouched = Gdx.input.isTouched();
if (isTouched) {
System.out.println(Cash);
Cash++;
}
}
此外,虽然我在这里,你如何打印一个会改变每个水龙头的integer/float
?
赞:font.draw(batch, Cash, 300, 260);
直接上班。
答案 0 :(得分:5)
您正在做的是轮询输入。但是对于你想要的东西,InputProcessor将是最佳选择:
public class MyInputProcessor implements InputProcessor {
@Override
public boolean keyDown (int keycode) {
return false;
}
@Override
public boolean keyUp (int keycode) {
cash++; //<----
return false;
}
@Override
public boolean keyTyped (char character) {
return false;
}
@Override
public boolean touchDown (int x, int y, int pointer, int button) {
return false;
}
@Override
public boolean touchUp (int x, int y, int pointer, int button) {
return false;
}
@Override
public boolean touchDragged (int x, int y, int pointer) {
return false;
}
@Override
public boolean touchMoved (int x, int y) {
return false;
}
@Override
public boolean scrolled (int amount) {
return false;
}
}
在创建代码中设置:
MyInputProcessor inputProcessor = new MyInputProcessor();
Gdx.input.setInputProcessor(inputProcessor);
如何打印一个可以改变每个水龙头的整数/浮点数?
喜欢:font.draw(batch,Cash,300,260);
直接不起作用。
BitmapFont#draw接受一个String,而不是int / float。您必须使用以下其中一项:
Integer.toString(Cash); //or
Float.toString(Cash);
专业提示:不要使用Caps启动变量名称。它应该是cash
。
答案 1 :(得分:3)
InputProcessor
绝对是长期的方式(基于事件的输入更强大,我认为),但你也可以使用的内置黑客是"justTouched" API:
if (Gdx.input.justTouched()) {
System.out.println(Cash);
Cash++;
}