libgdx sprite维度米还是像素?

时间:2014-07-26 23:15:14

标签: java android libgdx game-engine

我一直在阅读“学习Libgdx游戏开发”。我尝试了下面的代码:

// First the camera object is created with viewport of 5 X 5. 
OrthographicCamera camera = new OrthographicCamera(5, 5);

我的纹理尺寸为32像素乘32像素。我从这个

中形成一个精灵
Sprite spr = new Sprite(texture);

// I set the size of Spr as 
spr.setSize(1,1);

根据这本书,上面的尺寸是米而不是像素。

我不明白的是如何在屏幕上发生从米到像素的映射?当我在屏幕上绘制精灵时,尺寸甚至不到半米,更不用说1.

此外,底层纹理的大小为32 X 32像素。当我调整大小时,我的精灵的大小也会发生变化。

那么,spr.setPosition(x,y)的维度是多少?它们是米还是像素?

1 个答案:

答案 0 :(得分:0)

图书馆使用像素作为尺寸,如纹理尺寸,以及游戏中单位的米数。

setPosition将以游戏单位移动对象。当您移动对象X游戏单位时,像素数会根据相机的投影矩阵以及其他设置而变化。

如果你考虑一下,移动像素是没有意义的。如果摄像机A放大到比摄像机B更多,则在每个摄像机的视图中移动X像素将需要移动两个不同的量。

编辑:对不起,我在上面的理解中做了一些假设,部分误解了这个问题,并且坦率地使用了误导性的措辞。关键是单位米的约定是内置,它是你强制执行的,因为Box2D中一个像素到一米的比例没有意义。我使用的措辞暗示内部setPosition关心米,但你应该自己做缩放。通常我在libgdx中看到的比例是30像素= 1米。