2015-12-28 11 views
13

画面の幅に合わせてテクスチャを拡大縮小しようとしています。これは私が試みたものですが、単純にテクスチャを繰り返します。それはそれを拡大縮小しません。 renderメソッドでスクリーン解像度に応じてlibgdxのスプライトをスケールする方法は?

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

:initメソッドで

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

誰もが私が間違っているの何のアイデアを持っていますか?

+0

あなたがこれを読んで、架空の "ピクセル" のユニットを使用しているように見える:http://blog.xoppa.com/pixels – Xoppa

+0

なぜこれが非常に複雑ですか? – Z0q

+0

何が複雑ですか? – Xoppa

答えて

2

私はミップマップを使用していたので、明らかにこれが起こりました。ミップマップがなければ、スプライトは適切に拡大縮小されます。

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

関連する問題