Java 在libgdx中边界碰撞期间消失精灵

Java 在libgdx中边界碰撞期间消失精灵,java,libgdx,sprite,Java,Libgdx,Sprite,我有一个长方形的小组,里面有一群精灵。精灵在移动(说向上)。当它们到达顶部时,会与边界碰撞。我建立了一个逻辑,当精灵离开团队时杀死他们。然而,现在的样子,我可以看到精灵离开了团队。我想这样做,当精灵穿越边界时,它会逐渐消失,直到消失(并死亡) 这是我想要实现的一个粗略的模型 我在玩相机,以为我必须修改视口,但它不起作用。达到这种效果的正确方法是什么 谢谢 编辑: 我的相机是这样设置的: camera = new OrthographicCamera(width, height);

我有一个长方形的小组,里面有一群精灵。精灵在移动(说向上)。当它们到达顶部时,会与边界碰撞。我建立了一个逻辑,当精灵离开团队时杀死他们。然而,现在的样子,我可以看到精灵离开了团队。我想这样做,当精灵穿越边界时,它会逐渐消失,直到消失(并死亡)

这是我想要实现的一个粗略的模型

我在玩相机,以为我必须修改视口,但它不起作用。达到这种效果的正确方法是什么

谢谢

编辑: 我的相机是这样设置的:

    camera = new OrthographicCamera(width, height);
    camera.setToOrtho(false, width, height);
    camera.position.set(width/2, height/2, 0);
现在,它正在从组的父级(层)进行操作。宽度和高度是Gdx.graphics.getWidth()等。 我的更新():


我把我的相机控制移到了我的小组课上。然后我将宽度和高度更改为groupWidth和groupHeight。由于组不是整个屏幕,我认为它必须更小。这使得这个团体规模庞大。我不想更改组的大小(或缩放?):(

我自己没有测试过,但我相信正确的方法是使用剪刀。基本上,剪刀允许您从图片中剪切出一个区域,并且只允许绘制该区域中的东西,因此您可能会执行与演示中类似的操作:


在使用剪刀绘制之前,您可能需要绘制并刷新背景图像(如果您有背景图像)。

事实上,设置相机视口应该可以做到这一点。您能告诉我们您尝试了什么吗?我展示了一些代码:)有趣!问题:它说“一堆矩形对象用于通过GL20.glScissor进行剪切。”(int,int,int,int)。我的配置是GL10。它是兼容的吗?@肯定VelyActhvices DunNO,您可能想自己尝试一下。但是,既然GL20是,那么如果可能的话,您可能需要考虑升级LIGBDX版本。
    camera.position.x = (width / 2) - resolver.getxPixelOffset()*parallax;
    camera.update();
    batch.setProjectionMatrix(camera.combined);
    batch.begin();
    g.drawGroup(batch);
    batch.end();
Rectangle scissors = new Rectangle();
Rectangle clipBounds = new Rectangle(x,y,w,h);
ScissorStack.calculateScissors(camera, spriteBatch.getTransformMatrix(), clipBounds, scissors);
ScissorStack.pushScissors(scissors);
spriteBatch.draw(...);
spriteBatch.flush();
ScissorStack.popScissors();