2015-12-28 12 views
13

Ich versuche die Textur auf die Bildschirmbreite zu skalieren. Dies ist, was ich versuchte, aber es wiederholt einfach die Textur. Es skaliert es nicht.Wie skalieren Sprites in libgdx nach Bildschirmauflösungen?

Im Init-Methode:

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

Bei dem Verfahren machen:

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

Hat jemand eine Idee, was ich falsch mache?

+0

Sieht aus wie Sie imaginäre "Pixel" Einheiten verwenden, lesen: http://blog.xoppa.com/pixels – Xoppa

+0

Warum ist das so kompliziert? – Z0q

+0

Was ist kompliziert? – Xoppa

Antwort

2

Anscheinend geschah dies, weil ich Mipmaps verwendete. Ohne Mipmapping skalieren die Sprites entsprechend. diese

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

Verwandte Themen