Libgdx batch.draw vs sprite.draw

时间:2015-11-06 20:04:16

标签: java android libgdx

我用TextureAtlas加载它并调用TextureAtlas #createSprites(“something”)。我将获得一个AtlasSprites数组。我绘制这些就好像没有使用sprite.draw(批处理批处理)去除空格,但我还要将纹理的大小减小到世界的大小,所以我使用setSсale,但是纹理没有减少到世界的大小。所以我决定尝试通过batch.draw(精灵精灵,浮动x,浮动y,浮动宽度,浮动高度),但它绘制像空格被剥离。如何绘制纹理,好像空白没有被剥离并减少它?

1 个答案:

答案 0 :(得分:0)

仅供参考)您之前使用的draw Sprite方法如下所示:

public void draw (Batch batch) {
    batch.draw(texture, getVertices(), 0, SPRITE_SIZE);
}

SPRITE_SIZE是顶点的数量,而0是"偏移",遗憾的是,它没有使用缩放的相似版本,至少是我能找到。

解决问题的绝对最佳方法,假设您有一些精灵想要一些透明度,就是使用固定的alpha值重新创建纹理。您可以在各种图像编辑器中执行此操作。这样,第一次正确加载纹理。

另一种方法是在将Pixmap.Format设为Textures而不是RGB888时设置RGBA8888A代表alpha,因此您将纹理的格式更改为没有alpha值。 (仅供参考,8是用于每个颜色通道的位数 - 红色:8位,绿色:8位,蓝色:8位

然而,当使用TextureAtlas时,我对如何为您的案例设置纹理的输出格式并不乐观。我知道这需要考虑Pixmap.Format的{​​{1}},但我不确定如何应用此功能,但是您已设置了地图集。

还有批量设置

Page

这实际上会导致批处理性能更快地运行。这很好。但是,以这种方式绘制的所有内容都会受到影响。