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