我正在做一对配对游戏。用户可以点击和匹配效果很好的对。但是,我想添加一个计时器。我不知道该怎么做。
我已经有一个“开始”按钮,用于启动和重置游戏。我添加了一个字段“计数器”,我将用它来显示时间。我只是不确定如何在不阻止游戏的情况下使计时器工作。
答案 0 :(得分:3)
考虑到这是一款游戏,我希望你能在一段时间后显示秒数并结束游戏。
LiveCode有很好的语法。 'send'命令允许您在指定的时间内发送消息。例如:
send "handlerName" to target in 1 second
因此,应用此原则允许我们使用几行脚本创建计时器
local sSeconds
on countSeconds
add 1 to sSeconds
send "timerIncrease" to me in 1 second
end countSeconds
这个例子将永远计算,所以可能没那么有用!
你描述了一个简单的游戏,所以我想你想要从60秒倒数到0.当你点击0时,告诉用户他们的时间到了.T在你的按钮中你可以尝试以下脚本
local sGameSeconds
local sTimerRunning
on mouseUp
if the label of me is "start" then
set the label of me to "reset"
put true into sTimerRunning
put 60 into sGameSeconds
send "timerRun" to me in 1 second
else
set the label of me to "start"
put false into sTimerRunning
put 60 into field "counter"
end if
end mouseUp
on timerRun
if sTimerRunning is true then
subtract 1 from sGameSeconds
if sGameSeconds < 1 then
put 0 into field "counter"
put false into sTimerRunning
set the label of button "start" to "start"
timerFinished
else
put sGameSeconds into field "counter"
send "timerRun" to me in 1 second
end if
end if
end timerRun
on timerFinished
answer "Time Up!"
end timerFinished
答案 1 :(得分:1)
你所要求的并不完全清楚。你写的是你想要一个计时器,但是你没有说出你想用它做什么。你也没有说你是否希望这个计时器实际显示时间,或者你是否只想在特定时间后发生某些事情。
以下是显示时间的简单方法:
on showTime
put the long time into fld "Time"
send "showTime" to me in 100 milliseconds
end showTime
通过每100毫秒调用一次时间,显示的时间绝不会超过1/10秒。
这是一种显示仅显示小时和分钟的计时器的有效方法。它及时发送showTime消息并使用最小的处理能力:
on mouseUp
if showTime is in the pendingMessages then
put the pendingMessages into myMsgs
filter myMsgs with "*showTime*"
repeat for each line myMsg in myMsgs
cancel item 1 of myMsg
end repeat
else
showTime
end if
end mouseUp
on showTime
set the itemDel to colon
put the system time into myTime
put myTime into fld 1
put item 2 of myTime into myMinutes
if myMinutes is 59 then
add 1 to item 1 of myTime
if item 1 of myTime >= 24 then
put 0 into item 1 of myTime
end if
put "00" into item 2 of myTime
else
add 1 to item 2 of myTime
end if
convert myTime to seconds
put myTime - the seconds into myTime
send "showTime" to me in myTime seconds
end showTime
您可以通过单击包含mouseUp处理程序的按钮来启动计时器,您可以通过再次单击相同按钮来停止计时器。
如果这不是您所需要的,请详细解释。