gpt4 book ai didi

java - BOX2D - 与 Monster 的正确碰撞

转载 作者:行者123 更新时间:2023-11-30 11:48:13 25 4
gpt4 key购买 nike

我正在使用 AndEngine 及其 BOX2D 扩展开发 2D 横版 Android 游戏。

我有玩家的 body ,有 2 个传感器用于“脚”和“头”,所以我可能确切地知道玩家的哪一侧接触了不同的物体等。下图显示了它是如何工作的:

enter image description here

它非常适合检查玩家当前是否用脚接触地面,以便他可以跳跃等。现在我正在尝试实现与怪物 body 接触后执行的 Action 。

在我的接触式传感器中,我正在检查

                if (x1.getBody().getUserData().equals("monster") && x2.getUserData().equals("foot"))
{
jump();
}

if (x1.getBody().getUserData().equals("monster") && x2.getUserData().equals("player"))
{
GameManager.playSound(lostSound);
handleDie();
}

但是每次我跳到怪物的“头”上(所以基本上我是用脚传感器接触它)都会执行死亡 Action 。因为接触监听器注意到两个接触,所以如果我将脚传感器调得更高,从玩家 body 突出更多(玩家 body 是玩家 Sprite 纹理的精确形状),它会起作用所以看起来玩家和怪物之间没有接触完全没有。

提前感谢您提供有关如何正确处理它的任何提示。

最佳答案

我认为最简单的方法是让你的“脚”传感器成为一个坚固的固定装置。也让玩家的 body 变小。实际上,您可以让玩家拥有 3 个固定装置:头部、 body 、 footer 。碰撞仍然会以正确的方式处理,但是如果你用脚接触怪物,由于固定装置的原因,无法用 body 接触他

关于java - BOX2D - 与 Monster 的正确碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8953505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com