将一个精灵绘制到Pixmap - LibGDX

时间:2015-12-08 19:51:27

标签: java android libgdx collision

我目前正在制作一款游戏,其中我需要像素与物体完美碰撞。然而,我得到的唯一障碍是实际获得物体的面具。我想过将一个对象的精灵(经过适当缩放和变换)渲染到FrameBuffer,然后我将其转换为像素图,但我没有运气(试过很多方法,包括this)< / p>

所以,我的问题是:有没有办法在LibGDX中将单个精灵渲染到像素图?

1 个答案:

答案 0 :(得分:3)

听起来像把马放在推车后面。 Sprite是Texture的一个区域,而该区域又是从文件aka Pixmap加载的图像。如果您只想从文件加载图像,则可以执行:new Pixmap(Gdx.files.internal("yourfile.png"));。您也可以缩放和变换坐标,而无需先渲染到FBO。

那说;获得FrameBuffer的Pixmap就像#34;简单&#34;当FBO受约束时为taking a screenshot,因为它正是如此。

fbo.begin();
Gdx.gl.glClear(...);
... //render to the FBO
Pixmap pixmap = ScreenUtils.getFrameBufferPixmap(0, 0, fbo.getWidth(), fbo.getHeight());
fbo.end();

请注意,这将是look like it is up-side-down

但您可能只对像素数据感兴趣,所以在这种情况下您也可以跳过Pixmap步骤并使用ScreenUtils.getFrameBufferPixels方法。

然而,那说;使用像素数据进行碰撞检测很可能不是您想要实现的最佳解决方案。相反,我建议您查看其他选项,例如查看可用于将图像转换为碰撞形状的this tool