我想让玩家(实际上只是一个图像)在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(自上次渲染以来经过的时间)来计算运动,当我想出这个时,我会。 :)
答案 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);
}
}
}