class AdventureRL::Window
Public Class Methods
# File lib/AdventureRL/Window.rb, line 16 def initialize settings_arg = {} @@WINDOW = self settings_arg = {} unless (settings_arg) settings = Settings.new( DEFAULT_SETTINGS.get(:window) ).merge(settings_arg) @_layer = Layer.new( position: settings.get(:position), size: settings.get(:size), origin: settings.get(:origin), has_solids_manager: settings.get(:has_solids_manager) ) Helpers::PipeMethods.pipe_methods_from self, to: @_layer @_target_fps = settings.get(:fps) @background_color = settings.get(:background_color) if (settings.get(:background_color)) @background_z_index = settings.get(:background_z_index) #@_solids_manager = SolidsManager.new super( get_size(:width), get_size(:height), fullscreen: settings.get(:fullscreen), update_interval: _get_update_inteval_from_fps(@_target_fps) ) self.caption = settings.get(:caption) _call_setup_method settings_arg end
Public Instance Methods
Default draw
method. You might want to call super
if you overwrite this method.
# File lib/AdventureRL/Window.rb, line 116 def draw @_layer.draw draw_background_color if (@background_color) end
# File lib/AdventureRL/Window.rb, line 121 def draw_background_color Gosu.draw_rect( *get_corner(:left, :top).values, *get_size.values, @background_color, @background_z_index ) end
Returns the current FPS. This is just a wrapper method around Gosu.fps
to maintain the design pattern with get_*
methods.
# File lib/AdventureRL/Window.rb, line 50 def get_fps return Gosu.fps end
Returns the expected FPS. These were passed to #initialize
in the settings.
# File lib/AdventureRL/Window.rb, line 56 def get_target_fps return @_target_fps end
Wrapper method around Gosu::Window#fullscreen?, just to follow the design pattern.
# File lib/AdventureRL/Window.rb, line 67 def is_fullscreen? return fullscreen? end
Show cursor.
# File lib/AdventureRL/Window.rb, line 99 def needs_cursor? return true end
Wrapper method around Gosu::Window#fullscreen=, just to follow the design pattern.
# File lib/AdventureRL/Window.rb, line 73 def set_fullscreen state self.fullscreen = !!state end
This method can be overwritten by user, and will be called after #initialize
.
# File lib/AdventureRL/Window.rb, line 44 def setup args end
Overwrite the Gosu#show method, so we can call Deltatime#reset
on all previously created Deltatimes.
# File lib/AdventureRL/Window.rb, line 132 def show Deltatime::DELTATIMES.each &:reset super end
Toggle beteween fullscreen and windowed states.
# File lib/AdventureRL/Window.rb, line 78 def toggle_fullscreen set_fullscreen !is_fullscreen? end
Default update
method. If you overwrite this, be sure to call super
in your method.
# File lib/AdventureRL/Window.rb, line 106 def update @_layer.update #@_solids_manager.update EventHandlers::Buttons.update Menu.update end
Private Instance Methods
# File lib/AdventureRL/Window.rb, line 143 def _call_setup_method args return unless (method_exists?(:setup)) if (method_takes_arguments?(:setup)) setup args else setup end end
# File lib/AdventureRL/Window.rb, line 139 def _get_update_inteval_from_fps fps return (1.0 / fps.to_f) * 1000 end