Sprite Cropping LibDGX

时间:2016-12-26 21:00:32

标签: java image libgdx

我一直试图用一只眼睛在屏幕上绘制一个块的图像。我希望能够以相同的方式为多个纹理设置动画,因此手动绘制动画不是一种选择。问题是,当我将眼睑精灵移动到高于完全闭合时,眼睑的一部分显示在预期界限之上,如this。显然,这是一个问题,因为它看起来很不自然。我想要对这个问题有一个替代解决方案,或者能够裁剪眼睑的Sprite对象以适应图像的其余部分。最终的图像包括眼球,瞳孔(因为我也希望能够为此设置动画),眼睑,主体和轮廓,按顺序绘制。渲染函数如下所示:

public void render(float delta) {
        float height = this.eyelid.getHeight();
        float eyeHeight = height*0.7f;
        this.eyelid.setY(this.eye.getY()+(eyeHeight*((100-this.lid)/100f)));
        batch.begin();
        this.eye.draw(batch);
        this.pupil.draw(batch);
        this.eyelid.draw(batch);
        this.main.draw(batch);
        this.shade.draw(batch);
        batch.end();
    }

this.lid是眼睛闭合的百分比,并且可以找到眼睑本身的图像here。我怎么能解决这个问题,或者我怎么能裁剪精灵?我不想每帧都以精灵的形式重新加载纹理。

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找的是ScissorStack classlibGDX wiki中记录了这一点。你可以使用这个物体夹住眼睛的框架,使盖子的顶部不显示。