class DXRuby::Tiled::Tilesets
Attributes
tile_bottom[R]
tile_left[R]
tile_right[R]
tile_top[R]
tiles[R]
Public Class Methods
new(data, map)
click to toggle source
# File lib/dxruby_tiled/tilesets.rb, line 6 def initialize(data, map) @last_time = 0 @tiles = {} dummy_tile = Tile.new(DXRuby::Image.new(map.tile_width, map.tile_height), 0, 0, 0) def dummy_tile.render(x, y, target = DXRuby::Window, z_index = 0); end def dummy_tile.draw(x, y, target = DXRuby::Window, z_index = 0); end @tiles[0] = dummy_tile @tiles.default = dummy_tile @animations = [] @tilesets = data.map { |tileset| Tileset.new(tileset, map) } hex = map.orientation == HexagonalLayer @tilesets.each do |tileset| gid = tileset.firstgid tileset.tiles.each_with_index do |tile, i| next unless tile @tiles[gid + i] = tile range = hex ? 1..15 : 1..7 k = hex ? 0x10000000 : 0x20000000 range.each do |j| tileid = j * k + gid + i @tiles[tileid] = FlippedTile.new(tile, tileid, hex) end end tileset.animations.each { |i| @animations.push(gid + i) } end @tile_left = @tiles.values.map { |tile| tile.offset_x }.min @tile_top = @tiles.values.map { |tile| tile.offset_y }.min @tile_right = @tiles.values.map { |tile| tile.offset_x + tile.width }.max @tile_bottom = @tiles.values.map { |tile| tile.offset_y + tile.height }.max end
Public Instance Methods
[](num)
click to toggle source
# File lib/dxruby_tiled/tilesets.rb, line 38 def [](num) @tiles[num] end
animate()
click to toggle source
# File lib/dxruby_tiled/tilesets.rb, line 42 def animate() return if @last_time == DXRuby::Window::running_time @last_time = DXRuby::Window::running_time @animations.each { |i| @tiles[i].animate!(@last_time) } end
delayed_dispose()
click to toggle source
# File lib/dxruby_tiled/tilesets.rb, line 58 def delayed_dispose() @tilesets.each_value { |tileset| tileset.delayed_dispose() } @tiles[0].image.delayed_dispose() end
dispose()
click to toggle source
# File lib/dxruby_tiled/tilesets.rb, line 53 def dispose() @tilesets.each_value { |tileset| tileset.dispose() } @tiles[0].image.dispose() end
disposed?()
click to toggle source
# File lib/dxruby_tiled/tilesets.rb, line 63 def disposed?() @tiles[0].image.disposed?() end
gid_adjusted_by_source(gid, source)
click to toggle source
# File lib/dxruby_tiled/tilesets.rb, line 49 def gid_adjusted_by_source(gid, source) gid + @tilesets.find { |tileset| tileset.source == source }.firstgid - 1 end