在 Corona 中,物理并不能应用到一组物体中。

我有一个游戏,其中带有数字的蛋会落下,底部有一个带有数字的篮子。蛋和数字被分组并作为物理实体添加。篮子和数字也是一样。当仅将蛋作为物理实体添加而不是蛋组时,物理效果工作。以下是我的代码:

local physics =require("physics")
physics.start()
physics.setGravity(0,9.8)

local egg=display.newImage("egg.jpg")
egg.numberValue=myRandomNumber

local eggText = display.newText({x = egg.x, y = egg.y, text = tostring(egg.numberValue), fontSize = 30, font = native.systemFontBold })

local eggGroup = display.newGroup()
eggGroup:insert(egg)
eggGroup:insert(eggText)

physics.addBody(eggGroup, {bounce=0.2})  --如果我只添加蛋,则物理效果会工作

-- 添加篮子组
local basket=display.newImage("basket.png")
basket.numberValue=math.random(10,20)
local basketText = display.newText({x = basket.x, y = basket.y, text = tostring(basket.numberValue), fontSize = 30, font = native.systemFontBold })

local basketGroup = display.newGroup()
basketGroup:insert(basket)
basketGroup:insert(basketText)

physics.addBody(basket, "static")

如果在physics.addBody(eggGroup,{bounce = 0.2})中更改为仅添加蛋,则物理效果会起作用。请告诉我如何解决这个问题!!!

点赞
用户4841516
用户4841516

有几种修复方法,但最好/最简单的是:

仅将 psyhics 添加到蛋上。

将:

local eggText = display.newText({x = egg.x, y = egg.y, text = tostring(egg.numberValue), fontSize = 30, font = native.systemFontBold })

改为(这样当有多个对象时,更容易检索到蛋上的文本引用):

egg.eggText = display.newText({x = egg.x, y = egg.y, text = tostring(egg.numberValue), fontSize = 30, font = native.systemFontBold })

然后添加类似于此的内容。

local function adjustElements()
egg.eggText.x = egg.x
egg.eggText.y = egg.y
egg.eggText.rotation = egg.rotation
end

 Runtime:addEventListener( "enterFrame", adjustElements )

这将添加另一个函数,使文本跟随你的蛋。

2015-12-03 07:50:17