lua用计时器管理警报

时间:2015-03-05 14:03:11

标签: lua corona

我在LUA很新。我正在使用计时器弹出警报,必要时用displaygroup组成。要删除它们,我使用timeperformwithdelay函数调用remove函数,该函数删除引用Self的displaygroup对象。 但是我也有一个使用计时器功能的秒表。当秒表为零时,我弹出警报,2秒后我想将其删除。但在这种情况下,删除功能不起作用。以下是代码:

if timerleft==0 then
   screenalert("Game 1","Time is over")
   performwithdelay(2000,remove,1)


end

由于 嗨,再次感谢您的支持。这是我的代码:

local function timerDown()
   timeLimit = timeLimit-1
   if timeLimit < 10 then
    timeLeft.text = "0:0"..timeLimit
   else
    timeLeft.text = "0:"..timeLimit
   end

 if(timeLimit==0)then
    timeLeft.text="0:00" 
    alertScreen("Game 1","Time is over!")

    timer.performWithDelay(2000,removeAlert,1)
    timeLimit=60    
 end
end


local function removeAlert()
   alertDisplayGroup:removeSelf()   
end

function alertScreen(title, message)

alertBox=display.newImage("cornice.png")
alertBox.x=W
alertBox.y=H/1.3
titolomessaggio=display.newText(title,0,0,"Arial",200)
titolomessaggio:setTextColor(255,255,0,255)

titolomessaggio.xScale=0.5
titolomessaggio.yScale=0.5

titolomessaggio.x=display.contentCenterX
titolomessaggio.y=display.contentCenterY-200

testomessaggio=display.newText(message,0,0,"Arial",100)
testomessaggio:setTextColor(255,255,0,255)
testomessaggio.xScale=0.5
testomessaggio.yScale=0.5

testomessaggio.x=display.contentCenterX
testomessaggio.y=display.contentCenterY+10


alertDisplayGroup=display.newGroup()
alertDisplayGroup:insert(alertBox)
alertDisplayGroup:insert(titolomessaggio)
alertDisplayGroup:insert(testomessaggio)
end

1 个答案:

答案 0 :(得分:0)

我修改了你的代码来测试它。到目前为止,我编写的这段代码符合您的要求。对于在lua中工作的函数,函数必须位于该函数的顶部,这意味着如果要从函数B调用函数A. 函数A 必须位于之上功能B

示例:

local functionA ()

end

local functionB ()

  functionA()

end

以下是我根据自己的喜好制作代码的代码段:

local alertDisplayGroup = display.newGroup()
local timeLimit = 5

local function removeAlert()
   alertDisplayGroup:removeSelf()   
end

local function timerDown()
   timeLimit = timeLimit-1
    print(timeLimit)
   -- if timeLimit < 10 then
   --  print(timeLimit)

   -- else
   --  print(timeLimit)
   -- end

 if(timeLimit==0)then
    --timeLeft.text="0:00" 
    alertScreen("Game 1","Time is over!")

    timer.performWithDelay(2000,removeAlert,1)
    timeLimit=5    
 end
end


function alertScreen(title, message)

alertBox=display.newImageRect("images/error_message.png", 252, 85)
alertBox.x=screenW/2
alertBox.y=screenH/2
titolomessaggio=display.newText(title,0,0,"Arial",200)
titolomessaggio:setTextColor(255,255,0,255)

titolomessaggio.xScale=0.5
titolomessaggio.yScale=0.5

titolomessaggio.x=display.contentCenterX
titolomessaggio.y=display.contentCenterY-200

testomessaggio=display.newText(message,0,0,"Arial",100)
testomessaggio:setTextColor(255,255,0,255)
testomessaggio.xScale=0.5
testomessaggio.yScale=0.5

testomessaggio.x=display.contentCenterX
testomessaggio.y=display.contentCenterY+10


alertDisplayGroup=display.newGroup()
alertDisplayGroup:insert(alertBox)
alertDisplayGroup:insert(titolomessaggio)
alertDisplayGroup:insert(testomessaggio)
end

timer.performWithDelay( 1000, function() timerDown() end, 0)
你可以看到

我编辑了一点来测试它。欢呼声。