Я новичок в libgdx и практикуюсь с использованием ShapeRenderer
.Я пытаюсь поместить прямоугольник внизу экрана, но функция Gdx.graphics.getHeight()
возвращает значение, которое не покрывает всю длину.Если я установлю координаты прямоугольника на (0, screenHeight)
, он будет только на полпути вниз по экрану.
Кроме того, когда я записываю значения измерений из функций getWidth()
и getHeight()
, они оба возвращают 1440. Это прямоугольник (Белый участок) при width = getWidth()
и height = getHeight()
.
Код:
public class GameClass extends ApplicationAdapter {
private SpriteBatch batch;
private Texture goalTexture;
private Sprite sprite;
private OrthographicCamera cam;
private ShapeRenderer shape;
private ScreenViewport viewport;
//x-axis length for top/bottom bar
private float goalWidth = 200;
//y-axis height for back bar
private float goalHeight;
private float goalPostThickness = 20;
//Screen height and width
private float screenWidth;
private float screenHeight;
//How far down/up posts are from edge of screen
private float goalPostOffset;
@Override
public void create() {
viewport = new ScreenViewport();
cam = new OrthographicCamera();
cam.setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
shape = new ShapeRenderer();
}
@Override
public void dispose() {
batch.dispose();
goalTexture.dispose();
shape.dispose();
}
@Override
public void render() {
//Logic
screenWidth = Gdx.graphics.getWidth();
screenHeight = Gdx.graphics.getWidth();
System.out.println(screenWidth);
System.out.println(screenHeight);
goalPostOffset = screenHeight/3;
//Draw
cam.update();
Gdx.gl.glClearColor(0, 0, 0, 0);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
shape.setProjectionMatrix(cam.combined);
//Top goal bar
shape.setColor(Color.WHITE);
shape.begin(ShapeRenderer.ShapeType.Filled);
shape.rect(0, 0, screenWidth, screenHeight);
shape.end();
}
@Override
public void resize(int width, int height) {
}
@Override
public void pause() {
}
@Override
public void resume() {
}
}