我用TextureAtlas加载它,并调用TextureAtlas#createSprites(“东西”)。我会得到一个亚特兰斯普林特的数组,我绘制的这些空白好像没有使用sprite.draw(批处理),但我也不得不将纹理的大小缩小到世界的大小,所以我使用setSсale,但是纹理没有缩小到.So的大小--我决定通过batch.draw(雪碧精灵,浮点数x,浮点数y,浮点数宽度,浮点数高度),但是它画的像空白被去掉一样。如何绘制纹理,就像空白没有被剥夺和减少其?
发布于 2015-11-06 21:55:04
(仅FYI)您以前使用过的draw Sprite方法如下所示:
public void draw (Batch batch) {
batch.draw(texture, getVertices(), 0, SPRITE_SIZE);
}SPRITE_SIZE是顶点的数目,而0是一个“偏移”,不幸的是,没有类似的版本使用缩放,至少我可以找到。
解决你的问题的绝对最好的方法,假设你有一些精灵,你想要一些透明度,是重建你的纹理与固定的alpha值。您可以在各种图像编辑器中这样做。这样,您的纹理将在第一次正确加载。
另一种方法是在创建Pixmap.Format时将Textures设置为RGB888而不是RGBA8888。A代表alpha,因此您正在将纹理的格式更改为没有alpha值。(仅FYI,8_s是用于每个彩色通道的位数--红色:8位,绿色:8位,蓝色:8位)
然而,在使用TextureAtlas时,我并不肯定如何为您的情况设置纹理的输出格式。我知道它考虑到了Pixmap.Format的Page,但我不知道如何应用于您的地图集设置。
还有一个批处理设置。
batch.disableBlending();这实际上会使批处理在性能上运行得更快。所以这很好。然而,所有这样画的东西都会受到影响。
https://stackoverflow.com/questions/33574837
复制相似问题