Sha256: 6038b3036bc6252d54044c20beb2206ca8d78486d1fb53c36a06e5a0050a9cdc

Contents?: true

Size: 1.16 KB

Versions: 1

Compression:

Stored size: 1.16 KB

Contents

#
# task.rb
#

class TaskManager
  
  class << TaskManager
    def init
      @@task = []
    end

    def add_task(t)
      @@task << t
    end

    def reset
      @@task.each{|t| t.reset}
    end
    def draw(info)
      @@task.each{|t| t.draw(info) if t.active?}
    end
    def act(dt,info)
      @@task.each{|t| t.act(dt,info) if t.active?}
      @@task.delete_if{|t| !t.alive}
    end
  end
  
end

module Task
  Info = Struct.new(:key,:keydown,:scr,:score)
  
  def initialize
    @active = true
    @alive = true
    TaskManager.add_task(self)
    init
  end
  attr_accessor :alive
  
  def active?;  @active;                   end
  def enable;   @active = true;  enabled;  end
  def disable;  @active = false; disabled; end
  
  def enabled;  end
  def disabled; end
  
  def init; end
  def act(dt,info); end
  def draw(info); end
  def reset; end
end

module SingleTask
  def self.extended(klass)
    klass.__send__ :include, Singleton
    klass.__send__ :include, Task
  end
  
  def active?;  self.instance.active?;  end
  def enable;   self.instance.enable;   end
  def disable;  self.instance.disable;  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bathtub-0.5.2 bathtub/task.rb