首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Libgdx batch.draw对sprite.draw

Libgdx batch.draw对sprite.draw
EN

Stack Overflow用户
提问于 2015-11-06 20:04:16
回答 1查看 687关注 0票数 0

我用TextureAtlas加载它,并调用TextureAtlas#createSprites(“东西”)。我会得到一个亚特兰斯普林特的数组,我绘制的这些空白好像没有使用sprite.draw(批处理),但我也不得不将纹理的大小缩小到世界的大小,所以我使用setSсale,但是纹理没有缩小到.So的大小--我决定通过batch.draw(雪碧精灵,浮点数x,浮点数y,浮点数宽度,浮点数高度),但是它画的像空白被去掉一样。如何绘制纹理,就像空白没有被剥夺和减少其?

EN

回答 1

Stack Overflow用户

发布于 2015-11-06 21:55:04

(仅FYI)您以前使用过的draw Sprite方法如下所示:

代码语言:javascript
复制
public void draw (Batch batch) {
    batch.draw(texture, getVertices(), 0, SPRITE_SIZE);
}

SPRITE_SIZE是顶点的数目,而0是一个“偏移”,不幸的是,没有类似的版本使用缩放,至少我可以找到。

解决你的问题的绝对最好的方法,假设你有一些精灵,你想要一些透明度,是重建你的纹理与固定的alpha值。您可以在各种图像编辑器中这样做。这样,您的纹理将在第一次正确加载。

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

然而,在使用TextureAtlas时,我并不肯定如何为您的情况设置纹理的输出格式。我知道它考虑到了Pixmap.FormatPage,但我不知道如何应用于您的地图集设置。

还有一个批处理设置。

代码语言:javascript
复制
batch.disableBlending();

这实际上会使批处理在性能上运行得更快。所以这很好。然而,所有这样画的东西都会受到影响。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33574837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档