Chuck Brotman wrote:
A more specific question: Does anyone have any clever ideas (or design patterns, etc.) for keeping a simulation-time clock and dispatching the appropriate metods/objects on each tick?
I am not sure that I have a "clever" idea, but I can point to similar threads in the past. See ruby-talk #43139 and #41919:
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/43139
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/41919
I can also share with you a little insight I got while playing with GUI frameworks in Ruby. Most (I dare say all) GUI frameworks will have a
Timer class which is easy to use and will accomplish what you want.
I have used the one in wxRuby (http://rubyforge.org/projects/wxruby/\) and it works perfectly. Like so:
#... instantiate
@timer = Wx::Timer.new(self, :timer.id)
evt_timer(:timer.id) {on_timer}
#...
def on_timer
···
#
# take action
#
end
#... use
@timer.start(@delay)
@timer.stop
#...
Does this sound like what you want? I will gladly share the real code (which is more complex) if you are interested.
Thanks,
-- Shashank
Shashank,
Thanks for replying and for the thread pointers. I'm not sure if the code
snippets are exactly what I need or not, since I'm not sure exactly what I
need. But, I would be interested to see the code you offered. Thanks for
providing me with a place to start! Also, can you recomend any
Framework(s)? I have no experience with tthem...
Thanks again,
Chuck
"Shashank Date" <sdate@everestkc.net> wrote in message
news:418436F2.4000105@everestkc.net...
···
Chuck Brotman wrote:
A more specific question: Does anyone have any clever ideas (or
design patterns, etc.) for keeping a simulation-time clock and
dispatching the appropriate metods/objects on each tick?
I am not sure that I have a "clever" idea, but I can point to similar
threads in the past. See ruby-talk #43139 and #41919:
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/43139
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/41919
I can also share with you a little insight I got while playing with GUI
frameworks in Ruby. Most (I dare say all) GUI frameworks will have a
Timer class which is easy to use and will accomplish what you want.
I have used the one in wxRuby (http://rubyforge.org/projects/wxruby/\) and
it works perfectly. Like so:
#... instantiate
@timer = Wx::Timer.new(self, :timer.id)
evt_timer(:timer.id) {on_timer}
#...
def on_timer
#
# take action
#
end
#... use
@timer.start(@delay)
@timer.stop
#...
Does this sound like what you want? I will gladly share the real code
(which is more complex) if you are interested.
Thanks,
-- Shashank