Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.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
Java LibGDX+;Box2D:JustTouch增加了我的力量_Java_Android_Input_Libgdx_Box2d - Fatal编程技术网

Java LibGDX+;Box2D:JustTouch增加了我的力量

Java LibGDX+;Box2D:JustTouch增加了我的力量,java,android,input,libgdx,box2d,Java,Android,Input,Libgdx,Box2d,现在我的代码如下: if(Gdx.input.justTouched()) { if(cl.isPlayerOnGround()) { playerBody.applyForceToCenter(0, B2DVars.jumpForce, true); } } 不过,如果你在桌面上同时点击两个鼠标按钮,或者在android上同时点击多点触控,跳跃力就会成倍增加。我需要忽略所有的点击/轻触,但第一次,直到玩家再次触地 (cl是触点侦

现在我的代码如下:

if(Gdx.input.justTouched()) {
        if(cl.isPlayerOnGround()) {
            playerBody.applyForceToCenter(0, B2DVars.jumpForce, true);
        }
    }
不过,如果你在桌面上同时点击两个鼠标按钮,或者在android上同时点击多点触控,跳跃力就会成倍增加。我需要忽略所有的点击/轻触,但第一次,直到玩家再次触地


(cl是触点侦听器。)

有很多方法可以解决这个问题,但在我的选择中,解决这个问题的最佳方法是限制可以施加跨接力的频率。这可能会防止今后出现其他问题

//class var
float lastJumpForceTime = 0.5f; // start at 0.5f to enable jumping from the start
float jumpForceDelay = 0.5f;  // delay between jumps, 0.5f = half second


//method that calls your code
//delta time is the time since last update LibGDX provides this but you will need to pass it
public void yourMethod(float deltaTime, ...){
  lastJumpForceTime += deltaTime;  // update last jump time
  // check if player is on ground and if time since last jump is > delay
  if(cl.isPlayerOnGround() && lastJumpForceTime >= jumpForceDelay){
      lastJumpForceTime = 0.0f;
      playerBody.applyForceToCenter(0, B2DVars.jumpForce, true);
  }
}