Sha256: ffe737ec2f0c7fbd7f8e6285babaea3cb64e6089c2f785d0287f37dc5c474569

Contents?: true

Size: 738 Bytes

Versions: 6

Compression:

Stored size: 738 Bytes

Contents

require 'behavior'
# Keeps track of the layer that something is to be drawn on.
# By default it sets everything to layer 0 and parallax layer of
# 1.
class Layered < Behavior

  attr_accessor :layer, :parallax
  def setup
    if @opts.is_a? Hash
      @layer = @opts[:layer]
      @parallax = @opts[:parallax]
    else
      @layer = @opts
    end
    
    @layer ||= 0
    @parallax ||= 1

    layered_obj = self
    @actor.instance_eval do
      (class << self; self; end).class_eval do
        define_method :layer do 
          layered_obj.layer
        end
        define_method :parallax do 
          layered_obj.parallax
        end
        define_method :layered do 
          layered_obj
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
gamebox-0.0.1 lib/gamebox/layered.rb
gamebox-0.0.2 lib/gamebox/layered.rb
gamebox-0.0.3 lib/gamebox/layered.rb
gamebox-0.0.4 lib/gamebox/layered.rb
gamebox-0.0.5 lib/gamebox/layered.rb
gamebox-0.0.6 lib/gamebox/layered.rb