我有一个2D侧滚动游戏,有点像metroid,我想添加一些NPC,我想用重力在世界上模拟它们(它们与地板相撞),但我不想让它们与玩家发生碰撞。
将夹具设置为isSensor = true,会导致NPC从地板上掉下来,并将其设置为false,会导致它们与玩家发生冲突。
有什么办法可以做到这一点,而不模拟一个不同的世界,然后检查立场?
发布于 2014-03-03 06:56:49
使用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
https://stackoverflow.com/questions/22139886
复制相似问题