根据用户输入移动播放器

时间:2015-12-28 15:27:18

标签: java android image libgdx move

我想让玩家(实际上只是一个图像)在2D"游戏中移动位置"取决于用户按下屏幕的位置(Android)。

这是我的代码:

   public void updateState(float delta) {
        if(Gdx.input.isButtonPressed(Buttons.LEFT)){
             if(Gdx.input.getX()>player.getX()+5) {
                  player.setX(player.getX()+5);
             }else if (Gdx.input.getX()<player.getX()-5){
                  player.setX(player.getX()-5);
             }
             if(Gdx.input.getY()>player.getY()+5){
                  player.setY(player.getY() + 5);
             }else if(Gdx.input.getY()<player.getY()-5){
                  player.setY(player.getY()-5);
             }
             return;
        }
   }

有时候,当我按下右边的部分时,它会向右移动(如预期的那样),有些则向左移动(不知道为什么)。每隔一个方向也是如此。

我的代码中有什么问题?

提前致谢。

编辑:在有人告诉我之前,是的,我知道我应该使用delta(自上次渲染以来经过的时间)来计算运动,当我想出这个时,我会。 :)

1 个答案:

答案 0 :(得分:1)

删除该返回。什么都不做:

public void updateState(float delta) {
    if(Gdx.input.isButtonPressed(Buttons.LEFT)){

        if(Gdx.input.getX()>player.getX()) {
            player.setX(player.getX()+5);
        }else if (Gdx.input.getX()<player.getX()){
            player.setX(player.getX()-5);
        }
        if(Gdx.graphics.getHeight()-Gdx.input.getY()>player.getY()){
            player.setY(player.getY() + 5);
        }else if(Gdx.graphics.getHeight()-Gdx.input.getY()<player.getY()){
            player.setY(player.getY()-5);
        }
    }
}