lua eventListener正在调用方法四次,而不是一次

时间:2019-03-15 18:54:37

标签: lua corona

在我的游戏中(使用Corona SDK),我希望每3秒产生一个敌人。我的spawnBlob一次只能创建1个Blob,但每3秒一次在屏幕上显示4个Blob。我是lua和corona的新手,在跟踪这段代码时遇到麻烦,无法确定在不该调用的情况下如何调用四次。我在打印两个物体碰撞的位置时也遇到了碰撞检测的问题。但是,当两个对象碰撞时,将打印4行打印语句,但我不知道发生了什么。

此计时器是否有一个event.phase我应该使用类似于begin的触摸事件?

local allBlobs = {} -- global variable

function spawnBlob( event )
    allBlobs[#allBlobs + 1] = display.newSprite ( mainGroup, mySheet3, 
    sequenceDataBlob)
    local blob = allBlobs[#allBlobs]
    physics.addBody( blob, { density=0.3, friction=0.6 })
    blob.x = math.random(0, display.contentWidth)
    blob.y = -80
    blob.myName = "blob" .. #allBlobs
    physics.addBody(blob, "dynamic", {density=0.1, bounce=0, friction=.2, 
    radius=128})
    blob:play()

end

--scene:create( event ) contains mainGroup, spriteSheets and buttons

timer.performWithDelay( 3000, spawnBlob, 0) --in scene:show(event) 

--scene:hide (event ) is empty
--scene:destroy ( event ) is empty

scene:addEventListener("create", scene)
scene:addEventListener("show", scene)
scene:addEventListener("hide", scene)
scene:addEventListener("destroy", scene)

return scene

1 个答案:

答案 0 :(得分:1)

可以在场景:显示功能中使用

local phase = event.phase

if (phase == "will") then
   --call your listeners
elseif (phase == "did") then
end