Lua 即使我设置了groupIndex-/+;

Lua 即使我设置了groupIndex-/+;,lua,coronasdk,collision,Lua,Coronasdk,Collision,我有4个相同类型的物体,地雷,还有一个我不想与任何其他物体碰撞的物体。我已经将4个对象的groupIndex设置为正,将另一个对象设置为负。对于其中两个地雷,它可以工作,但与其他两个地雷发生碰撞 以下是对象: mine=display.newImage("mine.png") mine:setReferencePoint(display.BottomLeftReferencePoint) mine.y=-200 mine.x=math.random(0,280) physics.addBody(

我有4个相同类型的物体,地雷,还有一个我不想与任何其他物体碰撞的物体。我已经将4个对象的
groupIndex
设置为正,将另一个对象设置为负。对于其中两个地雷,它可以工作,但与其他两个地雷发生碰撞

以下是对象:

mine=display.newImage("mine.png")
mine:setReferencePoint(display.BottomLeftReferencePoint)
mine.y=-200
mine.x=math.random(0,280)
physics.addBody(mine, "static", {density=0, bounce=0, friction=0, radius=12})
mine.isVisible=true
local mineCollisionFilter = { groupIndex = 2 }

mine2=display.newImage("mine.png")
mine2:setReferencePoint(display.BottomLeftReferencePoint)
mine2.y=-400
mine2.x=math.random(0,280)
physics.addBody(mine2, "static", {density=0, bounce=0, friction=0, radius=12})
mine2.isVisible=true
local mine2CollisionFilter = { groupIndex = 3 }

mine3=display.newImage("mine.png")
mine3:setReferencePoint(display.BottomLeftReferencePoint)
mine3.y=-50
mine3.x=math.random(0,280)
physics.addBody(mine3, "static", {density=0, bounce=0, friction=0,     radius=12})
mine3.isVisible=true
local mine3CollisionFilter = { groupIndex = 4 }

mine4=display.newImage("mine.png")
mine4:setReferencePoint(display.BottomLeftReferencePoint)
mine4.y=-400
mine4.x=math.random(0,280)
physics.addBody(mine4, "static", {density=0, bounce=0, friction=0,r adius=12})
mine4.isVisible=true
local mine4CollisionFilter = { groupIndex = 5 }

function  salvareF(event)
salvare=display.newImage("RedButton.png")
salvare.x=math.random(0,300)
salvare.y=0
salvare.height=30
salvare.width=30
physics.addBody( salvare, "dynamic", {density=0, bounce=0, friction=0, radius=12} )
salvare.gravityScale=0
salvare:setLinearVelocity( 0,350 )
salvare.isVisible=true
salvare.collision=evCollision
local salvareCollisionFilter = { groupIndex=-6 }
salvare:addEventListener("collision", salvare)

end

您没有使用您创建的碰撞筛选表,它们应该在
addBody
之前创建,然后作为参数
filter=mine4CollisionFilter
传递,就像使用摩擦力等一样。Thx,现在它工作正常,但另一个问题突然出现,为什么我的一些物体会发生碰撞,而另一些物体则不会发生碰撞?物体的类型——静态的、动态的、运动学的——也有关于碰撞的规则。你的地雷不会互相碰撞,因为那会导致两个静止的物体碰撞。这在Corona文档中有介绍。