Libgdx如何在按键时获取事件?

Libgdx如何在按键时获取事件?,libgdx,Libgdx,我是新手,我想做一个像马里奥一样的游戏,我对按键有问题。这是我的密码 public class MyGdxGame extends ApplicationAdapter implements InputProcessor{ private TextureAtlas myTexture; private SpriteBatch sprite; private TextureRegion solider; private Vector2 position=new Vector2(0,0);

我是新手,我想做一个像马里奥一样的游戏,我对按键有问题。这是我的密码

public class MyGdxGame extends ApplicationAdapter implements InputProcessor{

private TextureAtlas myTexture;
private SpriteBatch sprite;
private TextureRegion solider;
private Vector2 position=new Vector2(0,0);

    @Override
    public void create () {
        sprite= new SpriteBatch();
        myTexture=new TextureAtlas("metal-slug.txt");
        solider=myTexture.findRegion("solider-run");
        Gdx.input.setInputProcessor(this);        
}
    @Override
    public void render () {
        Gdx.gl.glClearColor(1, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        sprite.begin();
        sprite.draw(solider, position.x, 0);                               
        sprite.end();
}
    @Override
    public boolean keyDown(int keycode) {           
        if (keycode== Keys.D){
            position.x+=10;
        }
        if (keycode== Keys.A){
            position.x-=10;
        }
        return false;
    }

    }

问题是当我按下键时对象只是移动,但当按键释放时它停止,我想当按住键时,对象应该移动到右屏幕。

您可以使用可变移动来移动对象

public class MyGdxGame extends ApplicationAdapter implements  InputProcessor     {


  private TextureAtlas myTexture;
  private SpriteBatch sprite;
  private TextureRegion solider;
  private Vector2 position=new Vector2(0,0);
  private float move=0f;

@Override
public void create () {
    sprite= new SpriteBatch();
    myTexture=new TextureAtlas("metal-slug.txt");
    solider=myTexture.findRegion("solider-run");
    Gdx.input.setInputProcessor(this);        
 }
@Override
public void render () {
    Gdx.gl.glClearColor(1, 0, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    sprite.begin();
    sprite.draw(solider, position.x+move, 0);                          
    sprite.end();
}
@Override
public boolean keyDown(int keycode) {           
    if (keycode== Keys.D){
        move=1;
    }
    if (keycode== Keys.A){
        move=-1;
    }
    return false;
}

}