class DXRuby::Tiled::TileObject

Attributes

start_time[RW]
tile[R]

Public Class Methods

create_from_hash(hash) click to toggle source
# File lib/dxruby_tiled/object.rb, line 186
def self.create_from_hash(hash)
  self.new(hash[:x], hash[:y], hash[:tile], hash)
end
evolve(object) click to toggle source
# File lib/dxruby_tiled/object.rb, line 176
def self.evolve(object)
  new_object = self.new(object.x, object.y, object.tile, id: @id)
  %w[z angle scale_x scale_y center_x center_y 
     alpha blend shader image target
     collision collision_enable collision_sync visible offset_sync
     name type start_time].each do |arg|
    new_object.send(arg + "=", object.send(arg))
  end
end
new(x, y, tile, options = {}) click to toggle source
Calls superclass method DXRuby::Tiled::TMEObject::new
# File lib/dxruby_tiled/object.rb, line 190
def initialize(x, y, tile, options = {})
  super x, y, options
  @tile = tile
  self.image = tile.original_image
  if tile.is_a? FlippedTile
    self.scale_x = tile.scale_x
    self.scale_y = tile.scale_y
    @tile = tile.tile
    self.extend(FlippedTileObject)
  end
  self.angle    = options[:rotation]
  self.center_x = -tile.offset_x
  self.center_y = self.image.height - tile.offset_y
  self.collision = tile.collision
  self.collision_enable = tile.collision_enable
  self.offset_sync = true
  @start_time = nil
end

Public Instance Methods

become(new_class) click to toggle source
# File lib/dxruby_tiled/object.rb, line 223
def become(new_class)
  new_class.evolve(self)
end
draw() click to toggle source
Calls superclass method
# File lib/dxruby_tiled/object.rb, line 209
def draw
  @start_time ||= DXRuby::Window::running_time
  tile = @tile.animate((DXRuby::Window::running_time - @start_time))
  self.image    = tile.original_image
  self.center_x = -tile.offset_x
  self.center_y = self.image.height - tile.offset_y
  super
end
tile=(tile) click to toggle source
# File lib/dxruby_tiled/object.rb, line 218
def tile=(tile)
  @tile = tile
  @start_time = nil
end