【问题标题】:libGDX - Delete/Subtract regions of a texture from SpriteBatch?libGDX - 从 SpriteBatch 中删除/减去纹理区域?
【发布时间】:2014-03-26 12:03:41
【问题描述】:

我的游戏屏幕中有许多方形区域,当演员穿过这些区域时,我希望背景图像从后面显示出来。

那么,是否可以绘制到 SpriteBatch 以便从纹理中减去/删除一个区域(有效地在其中“打孔”)?

我想不出还有什么方法可以做到这一点...剪刀对于我的目的来说似乎非常不切实际,因为我想剪裁一些正方形内的区域。这是剪刀的倒数 - 剪切剪刀边界之外的区域。计算数十个 Scissor 区域来填充各种方形区域之间的反向区域的想法似乎太不切实际而无法解决……尤其是在区域移动的情况下。

任何帮助或建议表示赞赏!

更新:附上图片。

我希望背景在用虚线标记的区域中始终可见。虚线区域会移动,所以我不想从背景中创建更多的精灵放在上面,而是让与虚线方块相交的部分演员不被绘制。 (或任何能达到相同效果的方法。)

【问题讨论】:

  • 您可以添加一张之前/之后的图片以使您的要求更清晰吗?
  • 我添加了一张图片来说明我所追求的,谢谢 P.T.

标签: libgdx spritebatch


【解决方案1】:

我认为最好的技巧是不要尝试如此精确地剪辑演员,而只是重新绘制演员顶部的背景(并剪辑)。

具体来说:

  1. 绘制整个背景
  2. 绘制你的演员/精灵
  3. 用一个cliprect为“透出”的部分绘制背景
  4. 用另一个cliprect为“透出”的另一部分绘制背景
  5. 在您的剪贴画区域周围绘制虚线框

顺便说一句,图片很棒。轻松值得1000字。 :)

【讨论】:

  • 好的,知道了。谢谢你的建议。
猜你喜欢
  • 1970-01-01
  • 2014-10-28
  • 2011-11-24
  • 2023-03-30
  • 1970-01-01
  • 2017-05-25
  • 2014-09-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多