我正在尝试做一个基本的计数器,所以每次点击都会使计数器增加一个。我可以让计数器开始工作,但当我按住手指/单击时它也会疯狂地增加计数。
代码:
public void render() {
boolean isTouched = Gdx.input.isTouched();
if (isTouched) {
System.out.println(Cash);
Cash++;
}
}
此外,当我在这里时,您如何打印一个 integer/float
每次点击都会改变?
喜欢:font.draw(batch, Cash, 300, 260);
直线上升是行不通的。
您正在做的是轮询输入。但是对于你想要的,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);
引用:Libgdx Wiki Event-Handling
how can you print an integer/float that will change every tap?
Like: font.draw(batch, Cash, 300, 260);
Straight up don't work.
BitmapFont#draw接受一个字符串,而不是一个整数/ float 。您必须使用其中之一:
Integer.toString(Cash); //or
Float.toString(Cash);
专业提示:变量名不要以大写开头。它应该是现金
。
我是一名优秀的程序员,十分优秀!