当前位置: 首页 > 知识库问答 >
问题:

在libgdx的边界碰撞中消失一个精灵

井唯
2023-03-14

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

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

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

谢谢

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

    camera = new OrthographicCamera(width, height);
    camera.setToOrtho(false, width, height);
    camera.position.set(width/2, height/2, 0);

现在它是从组的父级(层)操作的。宽度和高度是Gdx.graphics.getWidth()等。我的更新():

    camera.position.x = (width / 2) - resolver.getxPixelOffset()*parallax;
    camera.update();
    batch.setProjectionMatrix(camera.combined);
    batch.begin();
    g.drawGroup(batch);
    batch.end();

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

共有1个答案

龙俊良
2023-03-14

我自己还没有测试过,但我相信正确的方法是使用剪刀。基本上,剪刀允许你从图片中剪出一个区域,并且只允许画该区域的东西,所以你可能会做一些类似于他们在演示中所做的事情:

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();

在你用剪刀画之前,你可能需要画并冲洗你的背景图像(如果你有的话)。

 类似资料:
  • 我正在为我的播放器和bullet类创建一些围绕精灵的矩形,以使用LibGDX的Intersector类中的重叠方法检测碰撞。 我有一个问题: 当我实例化Player和Bullet时,我使用sprite.getBoundingRectangle()在精灵周围创建一个边界框,它返回一个Rectangle对象。我在主类的其他地方更新这些的移动。 当我更新子弹/玩家精灵的移动时,我是否也需要更新子弹/玩家

  • 我有一个关于libGDX碰撞检测的问题。因为这是一个相当具体的问题,我还没有在互联网上找到任何好的解决方案。 因此,我已经创建了由不同身体部位组成的“人类”,每个部位都有矩形碰撞检测。 现在我想实现武器和技能,例如看起来像这样: 技能示例图像 问题 当有这样的技能时,在碰撞检测中使用矩形会让玩家非常沮丧:他们会成功躲避技能,但碰撞检测器仍然会伤害他们。 方法 1: 在我开始使用Libgdx之前,我

  • 我已经寻找并找到了单个碰撞的答案,但我正在寻找一种检测多种类型的碰撞的方法。我正在制作一个游戏,其中有3个我想要的碰撞。用户飞机与敌方子弹相撞,用户子弹与敌机相撞(我已经工作过),敌方子弹与用户子弹相撞。我已经设置并更正了所有类别BitMask和contactTestBitMask。这是我的委托方法。

  • 使用< code >加速计,我的精灵图像会左右移动,如果我触摸屏幕,精灵会移动到Y轴。我想在不同的精灵之间进行碰撞检测,这样如果精灵穿过一个物体,它就会停下来藏在那个物体里。我已经看了这个https://www.youtube.com/watch?v=T1aN-vTqLc的教程,但什么也没发生。进行碰撞检测的正确方法是什么?我不知道我的编码有什么问题。任何建议或更好的教程谢谢和进步 这是我的编码

  • 问题内容: Libgdx中是否可以验证多边形和圆之间的碰撞? 我看到了课程,但只发现了Circle和Rectangle的碰撞测试。那其他多边形呢? 如果我需要手动进行操作,那么使用Libgdx的最佳方法是什么? 问题答案: 因此,我设法在Circle和Polygon之间创建了碰撞测试方法。至少,它对我有用。 这是代码:

  • 我的问题主要与它背后的理论有关。我为一个项目制作了一个2D游戏,通过使用Rectangle类中的.overlapps方法检测碰撞,碰撞处理得很好。首先,被认为是连续或离散碰撞技术。当我读到这个理论时,我说它是离散的,但我在网上的文章中读到离散的主要缺点是它在实际发生碰撞后检测到碰撞。所以,我的问题是:它实际上是离散的吗?如果是这样的话,我看不出它有什么缺点吗?谢谢