0

我正在尝试通过循环一次添加多个矩形,这是我的代码:

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

矩形已成功添加,但它们不被视为实体(即其他实体不与它们碰撞)

代码有什么问题?

4

3 回答 3

1

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

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

看看它是否有效。

于 2012-08-05T22:29:26.823 回答
0

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

于 2012-08-07T19:12:35.483 回答
0

我解决了我object:translate()用来移动对象的问题,而我应该使用object:setLinearVelocity()

于 2012-10-14T04:52:23.513 回答