【问题标题】:Draw all textures flipped?绘制所有翻转的纹理?
【发布时间】:2014-09-08 17:56:23
【问题描述】:

首先,以我在 XNA 的背景,我无法习惯倒置的 Y 轴。所以在 LibGDX 中,我用cam.setToOrtho(true,width, height) 翻转了OrthographicCamera,但这显然最终导致我所有的纹理都颠倒了。

我可以从我的所有纹理中创建SpritesTextureRegions 来翻转它们中的每一个,但这需要大量额外的代码。那么有没有一种有效的方法可以让我的所有纹理围绕中心翻转?

我尝试向spritebatch transformMatrix 添加一个翻转矩阵,但这会抵消翻转的正交凸轮。我还尝试创建一个Sprite 来绘制我所有的纹理并翻转它们,但没有成功。

【问题讨论】:

  • 为什么不习惯倒 Y 呢?做所有这些额外的工作似乎很愚蠢
  • @redFIVE 是的,我试过了,但我总是会遍历我的代码并修复与此相关的问题。
  • 您只是让您的代码变得更复杂,以便将来可能想要维护您的代码的人

标签: java android libgdx drawing textures


【解决方案1】:

您可能只使用flip,就像这样。

textureRegion.flip(false, true);

对于您拥有的每个TextureRegion

由于Sprites 扩展TextureRegions,这也应该适用于他们

【讨论】:

  • 我目前只使用 Texture 并直接在 spritebatch.draw 方法中使用它。所以这确实增加了一些额外的工作,难道没有办法只设置所有要翻转的纹理、纹理区域或精灵吗?翻转我的意思是读取翻转实际上并没有“物理地”翻转图像,所以性能方面大致相同。
  • 我实际上可以通过以下方式创建纹理区域:texture = new TextureRegion(new Texture("badlogic.jpg"));然后像往常一样画出来。除了翻转之外,纹理区域还为我提供了比常规纹理更多的选项,所以我将开始使用它。仍然很好奇是否有一种方法可以翻转每个纹理而不在每个区域上使用 region.flip。
  • @Menno Gouw 我相信精灵批次有一个similar method。您可能可以在绘制图像时只给图像源倒置高度,尽管我不确定这是否可行。我怀疑这两种方式的性能差异很大。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-05
  • 1970-01-01
相关资源
最近更新 更多