Jbox2D是NPC碰撞的传感器

时间:2014-03-03 06:13:24

标签: java jbox2d

我有一个2D侧滚动游戏,就像一个类似于vanid-vania,我有一些我要添加的NPC,我想在世界上用重力模拟它们(它们与地板碰撞)但我不要让他们与玩家发生碰撞。

将灯具设置为isSensor = true,会导致NPC掉落地板,并将其设置为false会导致它们与播放器发生碰撞。

有没有办法在不模拟不同的世界然后检查位置的情况下实现这一目标?

1 个答案:

答案 0 :(得分:0)

使用Box2D的内置过滤器,您可以过滤碰撞,使它们不会发生碰撞

FixtureDef floorFixture
floorFixture.filter.categoryBits = 4

FixtureDef playerFixture
playerFixture.filter.catagoryBits = 2;
playerFixture.filter.maskBits = 4;

FixtureDef npcFixture
npcFixture.filter.catagoryBits = 2;
npcFixture.filter.maskBits = 4;

在这个例子中,玩家和NPC不应该相互碰撞,但会与地板发生碰撞。

在此处阅读更多内容(搜索过滤):http://www.box2d.org/manual.html