我正在使用libgdx来开发游戏,但碰到我将如何在各种屏幕尺寸上实现它?我想出了如何为不同大小和分辨率放置图像,但是我们如何使子画面支持不同的屏幕大小?我在320x480上的背景很好,但在480 x 800上只占很小的位置,如何实现在所有屏幕上都能使用的效果?
您可以根据自己的喜好选择各种选项,
a。您可以使用一组按比例缩小的HQ精灵,以适合每个屏幕,例如;
in resize()
width = arg0;
height = arg1;
然后进入您的render()
batch.draw(textureRegion, -width/2, -height/2, width, height);
将在整个屏幕上绘制一个精灵(假设正交摄影机的中心为0,0)
b。您可以为不同的分辨率使用不同的精灵集,然后根据视口的尺寸加载一组精灵。
您可以使用scene2d。您可以在那里通知场景,该窗口在应用程序中已调整大小
@Override
public void resize(int width, int height) {
stage.setViewport(width, height, true);
...
}
将屏幕划分为虚拟单元,例如10x10网格。根据实际屏幕尺寸计算您的虚拟单位。
VIRTUAL_UNIT_WIDTH = Gdx.graphics.getWidth()/10;
VIRTUAL_UNIT_HEIGHT = Gdx.graphics.getHeight()/10;
并通过这些虚拟单元设置您的精灵大小,并在调用spriteBatch.draw()时使用虚拟单元]]
像这样,通过各种屏幕分辨率,您都可以保持游戏的长宽比不变。
希望这能给您一个想法。
我正在使用下面的方法,它几乎适用于几乎所有屏幕尺寸,并且存在微小的缩放问题。