日安。我是CoronaSDk的新手,在timer.performWithDelay方面我面临着一个问题。这是我的密码:
local time
function main()
display.setStatusBar( display.HiddenStatusBar )
time = 180
timelimiter()
timelimit = timer.performWithDelay(1000,decreaseTime,0)
end
function timelimiter()
timeNumber = display.newGroup()
timeNumber = display.newText("Time: "..tostring(time), 1, 0, native.systemFontBold, 14)
timeNumber.x = 330
timeNumber.y = 300
end
function decreaseTime()
time = time - 1
timeNumber.isVisible = false
timelimiter()
print(time)
if(tostring(time) == "0") then
print("Finish!")
timer.pause(timelimit)
end
end
main()此代码按预期运行。我甚至尝试用这些代码创建一个新的main.lua文件,并且能够运行它而没有错误。但我的问题是,当我把它实现到我想要做的游戏时,循环会在176点停止。有人能帮我吗?我的项目的全部代码都在这里(我所指的具体lua文件)。
http://pastebin.com/98CR6mnW
谢谢你的帮助。不过对我的英语很抱歉。:)
发布于 2014-02-09 14:11:24
还不清楚是什么导致了这一点,但您正在创建一个计时器文本在每一秒,这是不必要的。原则上,他们应该是有序的,所以你可能会看到最新的,但这是有点奇怪。因此,首先需要清理代码:如果我理解您要做的事情,请尝试如下:
function timelimiter()
timeNumber.setText("Time: "..time)
timeNumber.x = 330
timeNumber.y = 300
end并在main()中创建timeNumber:
function main()
timeNumber = display.newGroup()
timeNumber = display.newText("Time: "..time, 1, 0, native.systemFontBold, 14)
display.setStatusBar( display.HiddenStatusBar )
time = 180
timelimiter()
timelimit = timer.performWithDelay(1000, decreaseTime, 0)
end那么你的decreaseTime就像
function decreaseTime()
time = time - 1
-- timeNumber.isVisible = false
timelimiter()
print(time)
if time == 0 then
print("Finish!")
timer.pause(timelimit)
end
end一旦您尝试过此更新,您的帖子将基于您所拥有的新数据。
https://stackoverflow.com/questions/21644546
复制相似问题