Class: DXRuby::Tiled::Tilesets

Inherits:
Object
  • Object
show all
Defined in:
lib/dxruby_tiled/tilesets.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data, map) ⇒ Tilesets

Returns a new instance of Tilesets.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/dxruby_tiled/tilesets.rb', line 6

def initialize(data, map)
  @data = data
  @map  = map
  
  @last_time = 0
  @tile_images = [DXRuby::Image.new(32, 32)]
  @tilesets = @data.map{|tileset| Tileset.new(tileset, @map)}
  @animations = {}
  
  @tilesets.each do |tileset|
    gid = tileset.firstgid || @tile_images.size
    tileset.tile_images.each_index{|i| @tile_images[gid + i] = tileset.tile_images[i] }
    @animations.merge!(tileset.animations)
  end
end

Instance Attribute Details

#tile_imagesObject (readonly)

Returns the value of attribute tile_images.



4
5
6
# File 'lib/dxruby_tiled/tilesets.rb', line 4

def tile_images
  @tile_images
end

Instance Method Details

#animationObject



22
23
24
25
26
27
28
29
30
# File 'lib/dxruby_tiled/tilesets.rb', line 22

def animation()
  return if @last_time == DXRuby::Window::running_time
  @last_time = DXRuby::Window::running_time
  
  @animations.each_pair do |key, anim|
    time = @last_time % anim[:time].last
    @tile_images[key] = anim[:image][anim[:time].rindex{|t| time >= t }]
  end
end