如何让Sprites支持不同的屏幕尺寸?

问题描述 投票:3回答:4

我正在使用libgdx来开发游戏,但碰到我将如何在各种屏幕尺寸上实现它?我想出了如何为不同大小和分辨率放置图像,但是我们如何使子画面支持不同的屏幕大小?我在320x480上的背景很好,但在480 x 800上只占很小的位置,如何实现在所有屏幕上都能使用的效果?

libgdx
4个回答
5
投票

您可以根据自己的喜好选择各种选项,

a。您可以使用一组按比例缩小的HQ精灵,以适合每个屏幕,例如;

in resize()

width = arg0;
height = arg1;

然后进入您的render()

batch.draw(textureRegion, -width/2, -height/2, width, height);

将在整个屏幕上绘制一个精灵(假设正交摄影机的中心为0,0)

b。您可以为不同的分辨率使用不同的精灵集,然后根据视口的尺寸加载一组精灵。


3
投票

您可以使用scene2d。您可以在那里通知场景,该窗口在应用程序中已调整大小

@Override
public void resize(int width, int height) {
    stage.setViewport(width, height, true);
...
}

0
投票

将屏幕划分为虚拟单元,例如10x10网格。根据实际屏幕尺寸计算您的虚拟单位。

VIRTUAL_UNIT_WIDTH = Gdx.graphics.getWidth()/10;
VIRTUAL_UNIT_HEIGHT = Gdx.graphics.getHeight()/10;

并通过这些虚拟单元设置您的精灵大小,并在调用spriteBatch.draw()时使用虚拟单元]]

像这样,通过各种屏幕分辨率,您都可以保持游戏的长宽比不变。

希望这能给您一个想法。


0
投票

我正在使用下面的方法,它几乎适用于几乎所有屏幕尺寸,并且存在微小的缩放问题。

© www.soinside.com 2019 - 2024. All rights reserved.