【发布时间】:2014-12-04 19:07:25
【问题描述】:
我在游戏中使用的高度和宽度是否重要?在我的游戏中,我有几个多边形,它们都连接到我绘制的图像,但是当我的宽度和高度为 800x480 时,我必须将图像绘制得非常小,这会导致它们变得模糊。另外,我真的不明白这在不同尺寸的手机屏幕上是如何表现的..,我画的图像是否被拉伸,或者它们是否保持小,即使在大平板电脑上?所以我的问题基本上是 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这朵云不会一直保持比例吗?
如果我不清楚,我很抱歉,我是一名新程序员,我的英语可能会更好,爱你和我在一起!
【问题讨论】:
-
考虑为您的单位命名。 800x480 什么?米?英寸?哪些单位最适合您的游戏?
-
getWidth和getHeight为您提供以像素为单位的屏幕尺寸。设置相机的宽度和高度可以设置您世界的可视区域,但单位可以是您喜欢的任何单位,就像 Xoppa 所说的那样。如果您使用的是 box2D,那么米是一个不错的选择。无论设备的大小和纵横比如何,您设置的 800x480 都会被拉伸以适合屏幕。因此,如果您只选择这样的固定值,它在某些设备上看起来会失真。查看处理此问题的 Viewports 上的 libgdx 文档。 -
嗯好的,所以..我不应该使用固定值让它在所有设备上看起来都很好?我将阅读视口,但是,有没有办法向我展示如何不使用固定值的示例?如果我在 Photoshop 中制作 32x32 像素的图像,如何以正确的方式实现该图像?现在我只是导入它,如果尺寸不对我在photoshop中更改它,似乎是错误的