Libgdx 精灵移动不流畅
Libgdx Sprite not moving smoothly
我遇到了一个问题,当我移动精灵时它停止了,我必须再次按下才能让精灵再次移动。
我想要的是,当用户按住他们的输入时,角色会继续沿输入的方向移动,而不是在输入会使角色移动一点点并需要抬起手指的那一刻发生的事情再次输入。我已附上以下内容以尝试帮助解释。
目前正在发生的事情:
而我想要的是:
我的代码如下,请告知为什么会这样,如果可能的话我需要更改什么
@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
if (Gdx.input.isTouched()) {
player.b2body.applyLinearImpulse(new Vector2(5.1f, 0), player.b2body.getWorldCenter(), true);
}
}
return true;
}
这里还有一个类似的有效代码示例:https://github.com/BrentAureli/SuperMario/blob/master/core/src/com/brentaureli/mariobros/Screens/PlayScreen.java
我不是很确定,但我认为你的问题是你从 touchDown
方法调用这段代码。我认为此方法仅在 touch/click 发生时被调用一次。为了您想要的结果,请移动代码
if (Gdx.input.isTouched()) {
player.b2body.applyLinearImpulse(new Vector2(5.1f, 0), player.b2body.getWorldCenter(), true);
}
}
进入你的游戏循环/render
方法
我遇到了一个问题,当我移动精灵时它停止了,我必须再次按下才能让精灵再次移动。
我想要的是,当用户按住他们的输入时,角色会继续沿输入的方向移动,而不是在输入会使角色移动一点点并需要抬起手指的那一刻发生的事情再次输入。我已附上以下内容以尝试帮助解释。
目前正在发生的事情:
而我想要的是:
我的代码如下,请告知为什么会这样,如果可能的话我需要更改什么
@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
if (Gdx.input.isTouched()) {
player.b2body.applyLinearImpulse(new Vector2(5.1f, 0), player.b2body.getWorldCenter(), true);
}
}
return true;
}
这里还有一个类似的有效代码示例:https://github.com/BrentAureli/SuperMario/blob/master/core/src/com/brentaureli/mariobros/Screens/PlayScreen.java
我不是很确定,但我认为你的问题是你从 touchDown
方法调用这段代码。我认为此方法仅在 touch/click 发生时被调用一次。为了您想要的结果,请移动代码
if (Gdx.input.isTouched()) {
player.b2body.applyLinearImpulse(new Vector2(5.1f, 0), player.b2body.getWorldCenter(), true);
}
}
进入你的游戏循环/render
方法