Difference between revisions of "Timer (event)"

From ComputerCraft Wiki
Jump to: navigation, search
m (May need more work)
m (Page has an example, no longer needs a request for one.)
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{NeedsWork|A demonstration on the use and handling of this event would be beneficial. ''[[User:AfterLifeLochie|AfterLifeLochie]] 16:11, 30 November 2012 (MSK)''}}
 
 
 
{{Event
 
{{Event
 
|name=timer
 
|name=timer
 
|desc=Fired when a timer completes.
 
|desc=Fired when a timer completes.
|return1=The timer's numerical representation value (returned when [[os.startTimer|os.startTimer()]] is initially called).
+
|return1=The timer's unique ID value (returned when [[os.startTimer|os.startTimer()]], which triggers this event, is called).
 
}}
 
}}
 
{{Example
 
{{Example
|desc=This code will continuously start an internal timer and fire an event. If the event is not the timer, then it will break the loop
+
|desc=This code will loop and refresh every 1 second. If the event that occurred was a not a timer (eg a [[Key_%28event%29|key event]] from a keypress), the loop will complete.
|code= while true do<br/>  os.startTimer(1)<br/>  event = os.pullEvent()<br/>  if event == "timer" then <br/>    print("Too slow!")<br/>  else<br/>   print("Darn, you beat me!")<br/>    break<br/> end<br/>end
+
|code=while true do
 +
  os.startTimer(1)
 +
  local event = os.pullEvent()
 +
  if event == "timer" then
 +
    print("Too slow!")
 +
   else
 +
    print("You've beaten me!")
 +
    break
 +
  end
 +
  end
 +
}}
 +
{{Example
 +
|desc=This code will output different text depending on which timer has completed.
 +
|code=local timerA = os.startTimer(1)
 +
local timerB = os.startTimer(2)
 +
 +
while true do
 +
  local event, completed = os.pullEvent()
 +
  if event == "timer" then
 +
    if completed == timerA then
 +
      print("TimerA has finished, restarting it now")
 +
      timerA = os.startTimer(1)
 +
    elseif completed == timerB then
 +
      print("TimerB has finished, restarting it now")
 +
      timerB = os.startTimer(2)
 +
    else
 +
      print("A timer finished, but it wasn't one of the ones I care about")
 +
    end
 +
  end
 +
end
 
}}
 
}}

Latest revision as of 19:52, 19 December 2013



Grid Modem.png  Event timer
Fired when a timer completes.
Returned Object 1 The timer's unique ID value (returned when os.startTimer(), which triggers this event, is called).


Grid paper.png  Example
This code will loop and refresh every 1 second. If the event that occurred was a not a timer (eg a key event from a keypress), the loop will complete.
Code
while true do
  os.startTimer(1)
  local event = os.pullEvent()
  if event == "timer" then
    print("Too slow!")
  else
    print("You've beaten me!")
    break
  end
end



Grid paper.png  Example
This code will output different text depending on which timer has completed.
Code
local timerA = os.startTimer(1)
local timerB = os.startTimer(2)

while true do
  local event, completed = os.pullEvent()
  if event == "timer" then
    if completed == timerA then
      print("TimerA has finished, restarting it now")
      timerA = os.startTimer(1)
    elseif completed == timerB then
      print("TimerB has finished, restarting it now")
      timerB = os.startTimer(2)
    else
      print("A timer finished, but it wasn't one of the ones I care about")
    end
  end
end