如何让LibGDX只检测一次点击/点击?

Cod*_*Nub 3 macos android libgdx

我正在尝试做一个基本的计数器,所以每次点击都会增加一个计数器.我可以让计数器工作,但是当我按住手指/点击时,它也会疯狂地增加计数.

码:

public void render() {
    boolean isTouched = Gdx.input.isTouched();

    if (isTouched) {
        System.out.println(Cash);
        Cash++;

    }

}
Run Code Online (Sandbox Code Playgroud)

此外,虽然我在这里,你如何打印一个integer/float会改变每个水龙头?

喜欢: font.draw(batch, Cash, 300, 260);

直接不起作用.

Les*_*tat 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;
   }
}
Run Code Online (Sandbox Code Playgroud)

在创建代码中设置它:

MyInputProcessor inputProcessor = new MyInputProcessor();
Gdx.input.setInputProcessor(inputProcessor);
Run Code Online (Sandbox Code Playgroud)

参考:Libgdx Wiki事件处理

你怎么能打印一个整数/浮点数来改变每一个点击?
喜欢:font.draw(batch,Cash,300,260);
直接不起作用.

BitmapFont #draw接受String,而不是int/float.你必须使用以下其中一个:

Integer.toString(Cash); //or
Float.toString(Cash);
Run Code Online (Sandbox Code Playgroud)

专业提示:不要使用Caps启动变量名称.它应该是cash.