我试图通过循环在一次点击中添加多个矩形,这是我的代码:
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
矩形被成功添加但是它们不作为物体处理(即其他物体不与它们碰撞)
代码出了什么问题?
答案 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()
移动对象