Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使LibGDX只检测一次点击/点击?_Android_Macos_Libgdx - Fatal编程技术网

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

Android 如何使LibGDX只检测一次点击/点击?,android,macos,libgdx,Android,Macos,Libgdx,我试着做一个基本的计数器,所以每次点击都会增加一个计数器。我可以让计数器工作,但当我按住手指/点击时,计数器也会疯狂地增加计数 代码: public void render() { boolean isTouched = Gdx.input.isTouched(); if (isTouched) { System.out.println(Cash); Cash++; } } 还有,当我在这里的时候,你怎么能打印一个每次点击都会改变的

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

代码:

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

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

    }

}
还有,当我在这里的时候,你怎么能打印一个每次点击都会改变的
integer/float

比如:
font.draw(批量、现金、300260)


直截了当不起作用。

您所做的是轮询输入。但对于你想要的,最好的办法是:

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;
   }
}
参考:

如何打印每次点击都会改变的整数/浮点数?
比如:font.draw(批量、现金、300260)
直截了当地说,这是行不通的

接受字符串,而不是int/float。您必须使用以下选项之一:

Integer.toString(Cash); //or
Float.toString(Cash);

Pro提示:不要以大写开头变量名。它应该是
cash

从长远来看,
InputProcessor
无疑是一种更有效的方法(我认为基于事件的输入更可靠),但您也可以使用一种内置的hack:


没错,我忘记提了。顺便说一句,当必须使用多点触摸时,我有时会使用InputPolling(例如:platformer)。我的处理器到处都有奇怪的触地得分,这可能是因为坏的硬件或android问题,这是很常见的。
Integer.toString(Cash); //or
Float.toString(Cash);
if (Gdx.input.justTouched()) {
    System.out.println(Cash);
    Cash++;
}