class AdventureRL::Window

Public Class Methods

get_window() click to toggle source

This returns the current Window. As there should always only be one instance of Window, this should be fine.

# File lib/AdventureRL/Window.rb, line 11
def get_window
  return @@WINDOW
end
new(settings_arg = {}) click to toggle source
Calls superclass method
# 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

button_down(btnid) click to toggle source

If you use button_down in your game, be sure to call super at the beginning of the method, to take advantage of the framework's button events.

# File lib/AdventureRL/Window.rb, line 85
def button_down btnid
  EventHandlers::Buttons.button_down btnid
  Menu.button_down btnid
end
button_up(btnid) click to toggle source

If you use button_up in your game, be sure to call super at the beginning of the method, to take advantage of the framework's button events.

# File lib/AdventureRL/Window.rb, line 93
def button_up btnid
  EventHandlers::Buttons.button_up btnid
  Menu.button_up btnid
end
draw() click to toggle source

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
draw_background_color() click to toggle source
# 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
get_fps() click to toggle source

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
get_target_fps() click to toggle source

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
is_fullscreen?() click to toggle source

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
needs_cursor?() click to toggle source

Show cursor.

# File lib/AdventureRL/Window.rb, line 99
def needs_cursor?
  return true
end
set_fullscreen(state) click to toggle source

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
setup(args) click to toggle source

This method can be overwritten by user, and will be called after #initialize.

# File lib/AdventureRL/Window.rb, line 44
def setup args
end
show() click to toggle source

Overwrite the Gosu#show method, so we can call Deltatime#reset on all previously created Deltatimes.

Calls superclass method
# File lib/AdventureRL/Window.rb, line 132
def show
  Deltatime::DELTATIMES.each &:reset
  super
end
toggle_fullscreen() click to toggle source

Toggle beteween fullscreen and windowed states.

# File lib/AdventureRL/Window.rb, line 78
def toggle_fullscreen
  set_fullscreen !is_fullscreen?
end
update() click to toggle source

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

_call_setup_method(args) click to toggle source
# 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
_get_update_inteval_from_fps(fps) click to toggle source
# File lib/AdventureRL/Window.rb, line 139
def _get_update_inteval_from_fps fps
  return (1.0 / fps.to_f) * 1000
end