Libgdx : 检测空的 TextureRegion
Libgdx : Detect empty TextureRegion
几天来我一直在 Libgdx 中构建一个小游戏,我想实现某种动态精灵分析器。
我有一个 png 文件,我将其拆分为 TextureRegions 并从中构建动画。
因此,我将图像拆分为 64x64 区域并对其进行迭代。现在我想忽略每个完全透明的区域。我如何确定这些区域之一是否实际包含任何像素(并非所有像素都是透明的)。
我只是在搜索 textureRegion.isEmpty() 或 textureRegion.getTexture().isEmpty()
有人可以帮我吗? :)
我强烈反对这样做。由于您可以很容易地知道哪些区域是完全透明的,因此您可以对其进行硬编码。或者甚至,更好地使用透明区域来绘制其他需要绘制的东西。
如果您确实想要实现此功能,则需要逐个像素地检查区域,而对于明显的共振来说效率不是很高。如果出于某些原因我不知道您需要这个,那么 LibGDX 有 PixMap 可以帮助您在这里检查图像的纹理数据。
另一种更有效的方法是在第一个(或其他已知)像素上添加已知颜色以检查它是否属于动画。这样你就不需要遍历整个纹理。
几天来我一直在 Libgdx 中构建一个小游戏,我想实现某种动态精灵分析器。
我有一个 png 文件,我将其拆分为 TextureRegions 并从中构建动画。 因此,我将图像拆分为 64x64 区域并对其进行迭代。现在我想忽略每个完全透明的区域。我如何确定这些区域之一是否实际包含任何像素(并非所有像素都是透明的)。 我只是在搜索 textureRegion.isEmpty() 或 textureRegion.getTexture().isEmpty() 有人可以帮我吗? :)
我强烈反对这样做。由于您可以很容易地知道哪些区域是完全透明的,因此您可以对其进行硬编码。或者甚至,更好地使用透明区域来绘制其他需要绘制的东西。
如果您确实想要实现此功能,则需要逐个像素地检查区域,而对于明显的共振来说效率不是很高。如果出于某些原因我不知道您需要这个,那么 LibGDX 有 PixMap 可以帮助您在这里检查图像的纹理数据。
另一种更有效的方法是在第一个(或其他已知)像素上添加已知颜色以检查它是否属于动画。这样你就不需要遍历整个纹理。