Java libgdx-移动对象

Java libgdx-移动对象,java,android,libgdx,Java,Android,Libgdx,所以,我对编程很陌生这是我的第一个游戏,我已经做了一段时间了,对于我的一个班级,我正在制作一个乒乓球游戏,只是把它调高了一点,每次我改变屏幕宽度的百分比来移动它时,我都很难将我的球拍从左移到中间,因为某种原因,它几乎同样会使球拍升高。另外,由于一些奇怪的原因,所有的东西都是由宽度控制的,它几乎和场地一样。高度对移动它没有影响吗?我就被困在这里,我差一点就要完成了,我想把桨降到底部中间?任何帮助都将非常感激,希望这是有意义的 这是场地 @Override public void create ()

所以,我对编程很陌生这是我的第一个游戏,我已经做了一段时间了,对于我的一个班级,我正在制作一个乒乓球游戏,只是把它调高了一点,每次我改变屏幕宽度的百分比来移动它时,我都很难将我的球拍从左移到中间,因为某种原因,它几乎同样会使球拍升高。另外,由于一些奇怪的原因,所有的东西都是由宽度控制的,它几乎和场地一样。高度对移动它没有影响吗?我就被困在这里,我差一点就要完成了,我想把桨降到底部中间?任何帮助都将非常感激,希望这是有意义的

这是场地

@Override
public void create () { 
    field.set(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    fieldLeft = field.x;
    fieldRight = field.x + field.width;
    fieldBottom = field.y;
    fieldTop = field.y + field.height;
这是划桨运动

private void resetRectangle(){
    paddle1.move(field.x + (field.width * .5f, 0);
    paddle2.move(0,0);
}
班级呢

public class Paddle extends GameShare{

private ShapeRenderer paddleRenderer;


protected Paddle() {
    super(100, 32);
}

public void paddleCreate(){
    paddleRenderer = new ShapeRenderer();

}

public void paddleRender(float dt){
    paddleRenderer.begin(ShapeType.Filled);
    drawPaddle(dt);
    paddleRenderer.end();
}

private void drawPaddle(float dt) {
    paddleRenderer.rect(this.getX(), this.getX(), this.getWidth(), this.getHeight());
    paddleRenderer.rect(this.getX(), this.getX(), this.getWidth(), this.getHeight());

}
您应该使用摄影机或视口,因为这有助于支持不同的分辨率和纵横比。你可以使用自己的坐标,相机会将坐标转换成像素。所以基本上你可以说,你想在y轴上有80个单位。现在,如果你移动1个单元,在1920*1080分辨率下,相机将移动24px 1920/80,而在800*600分辨率下,它将只移动10px。因此相对运动总是相同的。DrawPapper方法使用this.getX作为y参数,而不是this.getY。另外,在同一个位置绘制两次,这是多余的。