2015-12-28 12 views
13

Próbuję przeskalować teksturę, aby dopasować ją do szerokości ekranu. To właśnie próbowałem, ale po prostu powtarza teksturę. Nie skaluje go.Jak skalować ikonki w libgdx zgodnie z rozdzielczością ekranu?

W metodzie 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); 

W metodzie render:

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(); 

Czy ktoś ma pomysł co robię źle?

+0

Wygląda używasz jednostka urojona "Pixel", przeczytaj to: http://blog.xoppa.com/pixels – Xoppa

+0

Dlaczego jest to tak skomplikowane? – Z0q

+0

Co jest skomplikowane? – Xoppa

Odpowiedz

2

Wygląda na to, że używałem mipmap. Bez mipmapping, skala skaluje się odpowiednio.

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

Powiązane problemy