2013-06-02 35 views
7

我一直在用LibGDX玩弄一阵子,并且想要将我的程序轻松移植到不同的系统。我有一个背景纹理,我想缩放到当前使用的分辨率。图像为1920x1080,如何在运行时将其更改为当前使用的分辨率?(Java LibGDX)如何在LibGDX中调整纹理大小?

+1

有很多方法来请回答这个问题,这取决于你如何渲染纹理。你能提供更多关于你在做什么的具体细节吗? –

回答

9
batch.begin(); 
    batch.draw(yourtexture, 0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); 
    batch.end(); 

使用摄影机视口也可以工作:

batch.begin(); 
    batch.draw(yourtexture, 0, 0, cam.viewportWidth, cam.viewportHeight); 
    batch.end(); 
+6

这不是真正的缩小,只是在绘制时缩小纹理,糟糕的设备会遇到问题。 –

5

如果您想在绘制时使用缩放:

Pixmap pixmap200 = new Pixmap(Gdx.files.internal("200x200.png")); 
Pixmap pixmap100 = new Pixmap(100, 100, pixmap200.getFormat()); 
pixmap100.drawPixmap(pixmap200, 
     0, 0, pixmap200.getWidth(), pixmap200.getHeight(), 
     0, 0, pixmap100.getWidth(), pixmap100.getHeight() 
); 
Texture texture = new Texture(pixmap100); 
pixmap200.dispose(); 
pixmap100.dispose(); 

来源:

https://www.snip2code.com/Snippet/774713/LibGDX-Resize-texture-on-load