On May 30, 2005, at 4:37 PM, Dennis Brown wrote:

That is a good point. I tested it out, and the useless "set angle" results in about 70ms of wasted time every second (7% CPU). I am surprised it is so high. Doing the test and skipping it is a thousand times faster. I fixed up the script as my own exercise for the student. You can see the time lag slightly when the computer is busy with something else, like loading a web page.

Note: the angle calculations had to be changed to match what the angle returned for these graphics. The clock is in my user space (see3d). It takes a licking, but keeps on ticking...

Four times faster still is comparing to a local variable rather than to the startAngle of the graphics. It adds a few lines of code though. It would appear that my web hosting company is down at the moment, so the script will have to suffice:

on openCard
  setTime
end openCard

local sHourAngle -- the angle for the hour hand
local sMinuteAngle -- the angle for the minute hand

on setTime
  put word 1 of the long time into T
  put T && the long seconds into fld "time"
  set the itemDelimiter to ":"
  get 90 - (30 * item 1 of T) - trunc((item 2 of T) / 2)
  if it is not sHourAngle then
    put it into sHourAngle
    set the startangle of grc "hour" to sHourAngle
  end if
  get 90 - (6 * item 2 of T) - trunc((item 3 of T) / 10)
  if it is not sMinuteAngle then
    put it into sMinuteAngle
    set the startangle of grc "minute" to sMinuteAngle
  end if
  set the startangle of grc "second" to 90 - (6 * item 3 of T)
  send "setTime" to me in (1 - (the long seconds mod 1)) seconds
end setTime
_______________________________________________
use-revolution mailing list
[email protected]
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to