根据用户输入移动播放器
Moving Player depending on user input
我想让播放器(实际上只是一个图像)在 2D "game" 中移动位置,具体取决于用户按下屏幕的位置 (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(自上次渲染以来经过的时间)来计算运动,当我想到这个时我会的出去。 :)
删除那个return。什么也不做:
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);
}
}
}
我想让播放器(实际上只是一个图像)在 2D "game" 中移动位置,具体取决于用户按下屏幕的位置 (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(自上次渲染以来经过的时间)来计算运动,当我想到这个时我会的出去。 :)
删除那个return。什么也不做:
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);
}
}
}