避免在电晕sdk碰撞

时间:2011-11-20 09:04:21

标签: corona

如何避免日冕物理机构之间发生碰撞?我正在开发的应用程序使用了许多物理实体。我希望在两个所需的物体之间发生碰撞,但碰撞发生在系统中的所有物体之间。任何人都可以帮我解决问题吗?

5 个答案:

答案 0 :(得分:3)

您需要创建一个'碰撞过滤器',将'categoryBits'和'maskBits'添加到每个对象。你在物理体中为它们分配一个数字。类似的东西:

physics.addBody(object, {bounce = .2, density = 1, filter = {maskBits = 2, categoryBits = 4}})

掩码位仅与具有相同类别位的对象发生冲突。 因此,maskBit = 2的对象只会与categoryBit = 2的对象发生碰撞。

您可以根据我的需要分配您想要的任何号码。

答案 1 :(得分:2)

第二种方法是为每个对象分配groupIndex。该值可以是正整数或负整数,并且是指定碰撞规则的更简单方法:具有相同正groupIndex值的对象将始终相互碰撞,具有相同负groupIndex值的对象将永远不会相互碰撞。 / p>

local collisionFilter = { groupIndex = 2 }
physics.addBody(object1, {bounce = .2, density = 1, filter = collisionFilter})
physics.addBody(object2, {bounce = .2, density = 1, filter = collisionFilter})

答案 2 :(得分:1)

概念是碰撞过滤。这个链接可能会有所帮助。

http://developer.anscamobile.com/forum/2010/10/25/collision-filters-helper-chart

答案 3 :(得分:1)

数字必须是2的幂。不是任何数字。

答案 4 :(得分:1)

我知道这已经得到了回答,但这可能对你有用。我在我的项目中使用了object.isSensor = true,这样即使对象有物理主体,它也不会与其他对象发生碰撞。