Sha256: 1d19f77f8e7ac89df008e21054a16da68348142762a2eb0c3f7d2c26893185ae

Contents?: true

Size: 1.14 KB

Versions: 8

Compression:

Stored size: 1.14 KB

Contents

class ActorView
  # TODO remove stage
  construct_with :renderer, :wrapped_screen, :resource_manager, :actor, :stage
  public :wrapped_screen, :resource_manager, :actor, :stage

  attr_accessor :layer, :parallax
  def initialize
    @layer = actor.do_or_do_not(:layer) || 0
    @parallax = actor.do_or_do_not(:parallax) || 1

    # TODO clean up the show/hide here make nice with visible behavior?
    actor.when :remove_me do unregister  end
    actor.when :hide_me   do unregister  end
    actor.when :show_me   do register    end
    
  end

  def register
    renderer.register_drawable self
  end
  
  def unregister
    renderer.unregister_drawable self
  end

  def screen_width
    @screen_width ||= wrapped_screen.width
  end

  def screen_height
    @screen_height ||= wrapped_screen.height
  end

  class << self
    def define(actor_view_type, &blk)
      @definitions ||= {}
      definition = ActorViewDefinition.new
      definition.source = caller.detect{|c|!c.match /core/}
      definition.instance_eval &blk if block_given?
      @definitions[actor_view_type] = definition
    end

    def definitions
      @definitions ||= {}
    end
  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
gamebox-0.5.5 lib/gamebox/core/actor_view.rb
gamebox-0.5.4 lib/gamebox/core/actor_view.rb
gamebox-0.5.2 lib/gamebox/core/actor_view.rb
gamebox-0.5.1 lib/gamebox/core/actor_view.rb
gamebox-0.5.0 lib/gamebox/core/actor_view.rb
gamebox-0.4.1 lib/gamebox/core/actor_view.rb
gamebox-0.4.0 lib/gamebox/core/actor_view.rb
gamebox-0.4.0.rc11 lib/gamebox/core/actor_view.rb