java - libgdx 最佳高度和宽度

标签 java android libgdx

我在游戏中使用的高度和宽度重要吗?在我的游戏中,我有一些多边形,它们都连接到我绘制的图像,但是当我的宽度和高度为 800x480 时,我必须将图像绘制得非常小,这会导致它们变得模糊。另外,我真的不明白这在不同尺寸的手机屏幕上的表现如何……我绘制的图像是否会被拉伸(stretch),或者它们是否保持很小,即使在大平板电脑上也是如此?所以我的问题基本上是 libgdx 游戏的最佳宽度和高度是多少?

这是我代码的一部分,也许可以帮助您理解我的意思

    WIDTH = Gdx.graphics.getWidth();
    HEIGHT = Gdx.graphics.getHeight();

    camera = new OrthographicCamera();
    camera.setToOrtho(false, 800, 480 );

如果我更改这些值会发生什么?最好将它们更改为什么?

我正在阅读某种教程,但他们并没有真正讨论这部分。

我是否需要做一些复杂的事情才能让我的绘画图像在所有设备上看起来都不错?

编辑:

这就是我目前在游戏中实现云的方式:

public class AnotherScreen implements Screen{

Polygon cloudPoly;
Texture cloud;

    @Override
public void render(float delta) {

    batch.setProjectionMatrix(camera.combined);

    batch.begin();
    renderBackground();
    batch.draw(cloud,cloudPoly.getX(),cloudPoly.getY());
    batch.end();

    }

    @Override
public void show() {
    cloud = new Texture(Gdx.files.internal("assets/textures/cloud.png"));
            cloudPoly = new Polygon();
    cloudPoly.setPosition(MathUtils.random(350,600),MathUtils.random(380,440));

    // theses vertices are just a little square atm
    float[] cloudVertices = new float[] {
            0,0,
            0,20,
            20,20,
            20,0
    };
    cloudPoly.setVertices(cloudVertices);
    }

}

当我设置 'camera.setToOrtho(false, 800, 480 );' 时,云图像的宽度为 256p,高度为 128p这朵云不会始终保持比例吗?

如果我不清楚,我很抱歉,我是一名新程序员,我的英语还可以更好,爱你和我在一起!

最佳答案

does the images I have painted get streched, or do they stay small, even on big tablets?

libgdx 最伟大的功能之一是它可以让您完全按照自己的意愿做事。所以,这确实是你的选择。有了这个 fragment

WIDTH = Gdx.graphics.getWidth();
HEIGHT = Gdx.graphics.getHeight();

camera = new OrthographicCamera();
camera.setToOrtho(false, WIDTH, HEIGHT);

每种不同的屏幕尺寸都会有不同的视口(viewport)尺寸。所以你的图像会保持很小。

另一方面,如果您使用视口(viewport)的预定义值,例如:

WIDTH = 800;
HEIGHT = 480;

camera = new OrthographicCamera();
camera.setToOrtho(false, WIDTH, HEIGHT);

您将为每个屏幕获得相同的视口(viewport),并且图像将拉伸(stretch)以占据每个轴上的相同空间。每个轴的情况不一定相同。因此,一个屏幕上的完美方形图像在另一个屏幕上可能看起来像具有不同 x-y 比例的矩形。

还有第三种选择,您可以固定一侧并计算另一侧,这样您就可以保持图像的比例(正方形保持正方形)。您必须决定哪一边是固定边。对于像 Super Mario Bros 这样的游戏我建议您固定高度并计算宽度:

HEIGHT = 480;
WIDTH = (Gdx.graphics.getWidth()/Gdx.graphics.getHeight())*HEIGHT;

camera = new OrthographicCamera();
camera.setToOrtho(false, WIDTH, HEIGHT);

游戏世界中的每个屏幕都会看到相同的高度。但有些屏幕的宽度会比其他屏幕更大。如果这对您来说是个问题(您希望他们看到相同数量的世界,但也保持比例),那么在每一侧添加黑条是一种选择。

So my question is basically what is the optimal width and height to have on a libgdx game?

最佳解决方案是针对多种分辨率使用不同的图像集。并在运行时选择最合适的。但这会大大增加游戏的大小。

另一种肮脏的方法是只有一个大集,并让图像在较低的分辨率下缩小。它看起来比相反的要好。但有些人认为这太脏了:p(不是我,所以我推荐它)。

关于java - libgdx 最佳高度和宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26285419/

相关文章:

Android gradle plugin v3.3.0 -> 使用 proguard 时找不到 R$raw

java - LibGDX 游戏突然卡顿了?

单击/聚焦时 Java FX 按钮略小

java - Gdax api 在 POST 请求上返回无效签名

java - 如何一次 pull IntelliJ IDEA ULTIMATE 项目中的所有模块?

java - 我应该在 Android 中使用 Azure 中的哪个 sdk 库来使用媒体服务?

java - 找不到 spark 应用程序输出

android - 服务间异步通信的最佳实践

java - 我应该如何更改旋转线的碰撞检测?

java - 如何在libgdx中创建没有标题栏的窗口