Подтвердить что ты не робот

Как масштабировать спрайты в libgdx в соответствии с разрешениями экрана?

Я пытаюсь масштабировать текстуру, чтобы она соответствовала ширине экрана. Это то, что я пробовал, но он просто повторяет текстуру. Он не масштабирует его.

В методе init:

TextureLoader.TextureParameter param = new TextureLoader.TextureParameter();
        param.minFilter = Texture.TextureFilter.MipMapLinearLinear;
        param.genMipMaps = true;
        param.wrapU = Texture.TextureWrap.ClampToEdge;
        param.wrapV = Texture.TextureWrap.ClampToEdge;
        manager.load("textures/texture.png", Texture.class, param);

В методе рендеринга:

Texture tex = manager.get("textures/texture.png", Texture.class);
float scale = (float)( (float)Gdx.graphics.getWidth() / (float)(tex.getWidth()));

batch.begin();
Sprite s = new Sprite(tex, 0,0,tex.getWidth(),tex.getHeight());

s.setPosition(0, 0);
s.setOriginCenter();
//s.setScale(scale);
s.setSize(Gdx.graphics.getWidth(), scale * tex.getHeight());
s.setOrigin(0,0);
s.draw(batch);
batch.end();

Есть ли у кого-нибудь идея, что я делаю неправильно?

4b9b3361

Ответ 1

Видимо, это произошло потому, что я использовал мипмапы. Без mipmapping спрайты масштабируются соответствующим образом.

param.minFilter = Texture.TextureFilter.MipMapLinearLinear;
param.genMipMaps = true;

Забастовкa >