libgdx剪切图像

时间:2014-06-18 01:51:08

标签: java image libgdx crop clipping

我一直试图“剪切”一段时间的图片,我会解释为什么和我尝试过的东西。 所以我想创建一个hp“bar”,除了它不是一个酒吧而是一个心脏所以我虽然很容易所有我必须要做的就是有两张照片将它们画在彼此的顶部,然后只需切一个就可以制作它出现在hp中的东西正在丢失,但我无法找到切割图像的方法。

  • 设置高度只会调整图像大小,因为您可能已经猜到了
  • 我尝试使用textureRegion来破解它,但它没有那么顺利
  • 我找到了一个名为clip begin的方法,它也使用了剪刀,但出于某种原因,它似乎没有用。

我可能正在使用剪辑开始出错,但我真的找不到任何真实的文档,我所做的只是:

image.clipBegin(x,y,height,weight);
image.clipEnd();

我差点忘了,我正在使用scene2d Image,可能是一种更好的解决方法,但不确定会是什么。

我很感激有关如何做到这一点的任何想法,谢谢。

1 个答案:

答案 0 :(得分:2)

您想使用Libgdx公开的OpenGL Scissor支持。查看Libgdx Clipping wikiLibgdx ScissorStack documentation

API并不是特别友好(它的设计目的是支持动态推送多个约束矩形,据我所知,它经常不被使用)。

使用剪刀堆栈要记住的重要一点是它仅适用于发出的实际绘图命令。由于大多数API都尝试批量绘制命令,这意味着当它看起来应该发生时,实际绘图可能不会发生。为了确保发生剪裁,你必须在推剪刀之前冲洗任何缓冲的绘图(否则错误的东西可能会被修剪)并且你必须在弹出剪刀之前冲洗任何绘制调用(否则你想剪裁的东西可能会避免剪刀)。

请参阅libgdx ScissorStack not working as expectedlibGDX - How to clipHow to draw on just a portion of the screen with SpriteBatch in libgdx?Making a Group hide Actors outside of its bounds