我在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
答案 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)
你可以看到我编辑了一点来测试它。欢呼声。