class AdventureRL::Animation
Constants
- DEFAULT_SETTINGS
Public Class Methods
new(settings = {})
click to toggle source
Calls superclass method
# File lib/AdventureRL/Animation.rb, line 8 def initialize settings = {} @settings = DEFAULT_SETTINGS.merge settings image_settings = @settings.get image_settings[:dont_create_image] = true super image_settings @images = get_images_from [@settings.get(:files)].flatten @animation_intervals = [@settings.get(:intervals)].flatten @timing_handler = TimingHandler.new @timeout_id = :next_image_timeout @current_image_index = -1 next_image end
Public Instance Methods
next_image()
click to toggle source
# File lib/AdventureRL/Animation.rb, line 30 def next_image @current_image_index += 1 @current_image_index = 0 if (@current_image_index >= @images.size) @image = @images[@current_image_index] set_timeout end
set_timeout()
click to toggle source
# File lib/AdventureRL/Animation.rb, line 37 def set_timeout current_interval = get_current_interval @timing_handler.set_timeout( id: @timeout_id, seconds: get_current_interval, method: method(:next_image) ) if (current_interval) end
update()
click to toggle source
Call this (or update_animation
) every frame, to ensure that the animation is playing.
# File lib/AdventureRL/Animation.rb, line 26 def update update_animation end
update_animation()
click to toggle source
# File lib/AdventureRL/Animation.rb, line 21 def update_animation @timing_handler.update end
Private Instance Methods
get_current_interval()
click to toggle source
# File lib/AdventureRL/Animation.rb, line 54 def get_current_interval intervals_size = @animation_intervals.size if (@current_image_index < intervals_size) return @animation_intervals[@current_image_index] else return @animation_intervals[@current_image_index - (intervals_size * (@current_image_index / intervals_size).floor)] end end
get_images_from(files)
click to toggle source
# File lib/AdventureRL/Animation.rb, line 48 def get_images_from files return files.map do |file| next get_image_from(file) end end