Sha256: bdb366b9f7b229391c704a562fabc65b0494b405d17e0492e42ca45ff2000f1c

Contents?: true

Size: 761 Bytes

Versions: 5

Compression:

Stored size: 761 Bytes

Contents

require 'behavior'
# keeps track of an image for you based on the actor's class
# by default it expects images to be:
# data/graphics/classname.png
class Graphical < Behavior

  attr_accessor :image, :num_x_tiles, :num_y_tiles
  def setup

    @image = @actor.resource_manager.load_actor_image @actor
    @tiled = @opts[:tiled]
    @num_x_tiles = @opts[:num_x_tiles]
    @num_y_tiles = @opts[:num_y_tiles]
    @num_x_tiles ||= 1
    @num_y_tiles ||= 1

    graphical_obj = self
    @actor.instance_eval do
      (class << self; self; end).class_eval do
        define_method :image do 
          graphical_obj.image
        end
        define_method :graphical do 
          graphical_obj
        end
      end
    end
  end

  def tiled?
    @tiled
  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
gamebox-0.1.1 lib/gamebox/behaviors/graphical.rb
gamebox-0.1.0 lib/gamebox/behaviors/graphical.rb
gamebox-0.0.9 lib/gamebox/behaviors/graphical.rb
gamebox-0.0.8 lib/gamebox/behaviors/graphical.rb
gamebox-0.0.7 lib/gamebox/behaviors/graphical.rb