我遇到了一个问题,当我去移动我的精灵时,它会停止,我必须再次按下精灵再次移动。
我想要的是当用户按住他们的输入时,角色继续在输入的方向上移动,而不是在输入将使角色移动一点并且需要手指抬起并再次输入的那一刻发生的事情。我附上以下内容试图帮助解释。
目前正在发生什么:
我想要的是什么:
我的代码如下,请告知为何会发生这种情况,如果可能的话,我需要更改
@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
答案 0 :(得分:1)
我不是很确定,但我认为您的问题是您从touchDown
方法调用此代码。我认为只有在触摸/点击发生时才会调用此方法一次。为了达到预期的效果,请移动代码
if (Gdx.input.isTouched()) {
player.b2body.applyLinearImpulse(new Vector2(5.1f, 0), player.b2body.getWorldCenter(), true);
}
}
进入游戏循环/ render
方法