physics.addbody()在电晕循环中不起作用

时间:2012-08-03 14:15:48

标签: lua corona game-physics

我试图通过循环在一次点击中添加多个矩形,这是我的代码:

for i=1,7,1 do
   rec = rectangles.createRoundedRect(left, top, 100, 18, 6)
  physics.addBody(rec , "static", { density = 1.0, friction = 0.0, bounce = 0.2 } )
  left = left + 50
  top = top - 35
end

矩形被成功添加但是它们不作为物体处理(即其他物体不与它们碰撞)

代码出了什么问题?

3 个答案:

答案 0 :(得分:1)

(我认为)这是因为你一遍又一遍地向物理引擎添加相同的rec。试试这个:

rec = {}
for i=1,7,1 do
 rec[i] = rectangles.createRoundedRect(left, top, 100, 18, 6)
 physics.addBody(rec[i] , "static", { density = 1.0, friction = 0.0, bounce = 0.2 } )
 left = left + 50
 top = top - 35
end

看看它是否有效。

答案 1 :(得分:0)

您的问题可能有多种原因。验证 a)这些方框确实没有添加到物理引擎中(通过使用physics.setDrawMode(“hybrid”)启用混合物理模式)。可能是这些框在那里,但您的对象过滤器出现问题(请参阅http://developer.coronalabs.com/forum/2010/10/25/collision-filters-helper-chart) b)rectangles.createRoundedRect(我认为是你自己的函数)不是将创建的对象添加到与其他对象(如果有的话)不是同一组的组中。电晕物理在组间创建的对象之间不能很好地发挥作用。

答案 2 :(得分:0)

我解决了这个问题 当我假设使用object:translate()

时,我正在使用object:setLinearVelocity()移动对象