libgdx getHeight () не покрывает весь экран - PullRequest
0 голосов
/ 23 декабря 2018

Я новичок в 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() {
    }
}

1 Ответ

0 голосов
/ 23 декабря 2018

В разделе кода вы опечатали.Вы загружаете ширину в высоту экранаHeight = Gdx.graphics.getWidth ();

...