Coronasdk 使用物理引擎获取object.x和object.y的更新位置
嗨,我是新来的。我希望有人能帮助我 我有一个物体(称为毛茸茸的)从天上掉下来,使用电晕SDK的物理引擎 当这个毛茸茸的物体在屏幕的一半时,我想播放一个音效(wee.mp3) 我正在尝试更新furry.x和furry.y以控制更新的位置。但我不知道该怎么做,因为物理引擎会根据重力更新位置 我希望下面的代码足以帮助我Coronasdk 使用物理引擎获取object.x和object.y的更新位置,coronasdk,Coronasdk,嗨,我是新来的。我希望有人能帮助我 我有一个物体(称为毛茸茸的)从天上掉下来,使用电晕SDK的物理引擎 当这个毛茸茸的物体在屏幕的一半时,我想播放一个音效(wee.mp3) 我正在尝试更新furry.x和furry.y以控制更新的位置。但我不知道该怎么做,因为物理引擎会根据重力更新位置 我希望下面的代码足以帮助我 centerX = display.contentWidth * .5 centerY = display.contentHeight * .5 local furry = disp
centerX = display.contentWidth * .5
centerY = display.contentHeight * .5
local furry = display.newImage("flurry.png")
furry.x = centerX-300
furry.y = centerY-1000
physics.addBody(furry, "dynamic", physicsData:get("flurry"))
if furry.x == centerX then
audio.play(wee)
end
那么,在游戏开始更新我的对象Furry的位置(x,y)后,我该如何获取呢?您可以使用运行时侦听器
enterFrame
来检测对象位置,请参见下面的代码
physics = require("physics")
physics.start()
centerX = display.contentWidth * .5
centerY = display.contentHeight * .5
local function listener( event )
local furry = display.newCircle(10,10,10)
furry.x = math.random(1, display.contentWidth)
furry.y = 10
physics.addBody(furry, "dynamic")
local function removeObject()
if furry.y > centerY then
furry:removeSelf()
Runtime:removeEventListener("enterFrame", removeObject)
end
end
Runtime:addEventListener("enterFrame", removeObject)
end
timer.performWithDelay( 500, listener ,0)
对不起,这似乎不起作用。我检查了if语句,将其改为<,然后它开始播放音效(由于对象的起始位置已经是,它不工作。==将很难工作,因为对象必须精确地位于触发它的确切位置,并且在物理上,它可能处于小数点,并且永远不会精确匹配。>应该工作,只要你输入一个标志,只检查它一次。。是的,它是h要获得条件的精确值,如果它返回分数值,您可能需要使用逻辑运算符。您好@RobMiracle,感谢您的响应,这是有意义的。仍然让我想知道,当一个对象在屏幕的一半时,是否有方法触发事件,例如在重力作用下对其应用物理。现在我使用了perform.timerWi不过我想应该有一种更优雅的方式