class Gosu::Spritesheet
Public Class Methods
new(tiles: [], animations: nil, duration: 0.2)
click to toggle source
# File lib/gosu/spritesheet.rb, line 9 def initialize(tiles: [], animations: nil, duration: 0.2) @tiles = tiles @default_duration = duration setup_animations(animations) end
version()
click to toggle source
# File lib/gosu/spritesheet/version.rb, line 3 def self.version "0.1.0" end
Public Instance Methods
animation(anim_key)
click to toggle source
# File lib/gosu/spritesheet.rb, line 15 def animation(anim_key) @animations[anim_key.to_sym] end
Private Instance Methods
animation_from_spec(spec)
click to toggle source
# File lib/gosu/spritesheet.rb, line 35 def animation_from_spec(spec) frames_range = spec.fetch(:range, nil) duration = spec.fetch(:duration, nil) missing_keys = [] missing_keys << ":range" if frames_range.nil? missing_keys << ":duration" if duration.nil? if not missing_keys.empty? message = "Missing #{missing_keys.join(' and ')} on block: #{spec}" raise MissingAnimationKeys, message end Gosu::AnimationBlock.new(@tiles[frames_range.first], duration) end
setup_animations(animations)
click to toggle source
# File lib/gosu/spritesheet.rb, line 20 def setup_animations(animations) @animations = Hash.new if animations.nil? @animations[:default] = Gosu::AnimationBlock.new( @tiles, @default_duration ) else animations.each do |key, value| @animations[key] = animation_from_spec(value) end end end