Sha256: 387b56a717aec375ca0287aa76ea1be97660373d669d503ac01dfd24d0a57e62
Contents?: true
Size: 1.57 KB
Versions: 4
Compression:
Stored size: 1.57 KB
Contents
module Lotu class Window < Gosu::Window # delta time attr_reader :dt, :systems, :fonts attr_accessor :update_queue, :draw_queue, :input_listeners, :font def initialize(params={}) super(800, 600, false) # Handy global window variable $window = self # Systems setup @systems = {} @update_queue = [] @draw_queue = [] @input_register = Hash.new{|hash,key| hash[key] = []} @fps_counter = FpsCounter.new @last_time = Gosu::milliseconds @fonts = Hash.new{|h,k| h[k] = Gosu::Font.new(self, Gosu::default_font_name, k)} # Add extra functionality extend Controllable extend Resourceful extend Systems::Collision end def update new_time = Gosu::milliseconds @dt = (new_time - @last_time)/1000.0 @last_time = new_time @fps_counter.update(@dt) @systems.each_value do |system| system.update end @update_queue.each do |item| item.update end end def draw @draw_queue.each do |item| item.draw end end def button_down(id) @input_register[id].each do |item| item.button_down(id) end end def button_up(id) @input_register[id].each do |item| item.button_up(id) end end # Register controller def register_for_input(controller) controller.keys.each_key do |key| @input_register[key] << controller end @update_queue << controller end def register_for_draw(object) @draw_queue << object end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
lotu-0.1.7 | lib/lotu/window.rb |
lotu-0.1.6 | lib/lotu/window.rb |
lotu-0.1.5 | lib/lotu/window.rb |
lotu-0.1.4 | lib/lotu/window.rb |