使用libgdx中的orthogrpaic相机从Pixmap获取像素

时间:2015-01-19 21:25:58

标签: java android libgdx

我有一台带缩放的ortographic相机,在相机的中央,我有一个纹理。

我用以下方法修正了我的世界坐标:

height = 20;
float ppu = Gdx.graphics.getHeight() / height;
width = Gdx.graphics.getWidth() / ppu;
camera = new OrthographicCamera(width, height);

当用户触摸图像时,我想要检索用户点击的颜色像素。所以在TouchDown事件中我有:

Vector3 worldCoordinate =camera.unproject(new Vector3(screenX, screenY, 0));
float newX = worldCoordinate.x;
float newY = worldCoordinate.y;
Pixmap source = img.getPixmap();
int color = source.getPixel(newX, newY);

问题是getPixel方法需要一个整数而不是float,而且相机内部纹理的大小是width = 106.6,height = 80,纹理的尺寸是3436(宽度),2409(高度)。我不知道如何将相机坐标映射到对象坐标,以获得用户点击的确切像素。

有什么建议吗? 感谢。

0 个答案:

没有答案