diff options
| author | realtradam <[email protected]> | 2021-05-04 06:23:39 -0400 |
|---|---|---|
| committer | realtradam <[email protected]> | 2021-05-04 06:23:39 -0400 |
| commit | a62ac5e77570516c399f9bad114aaba7bf20ff67 (patch) | |
| tree | 96b39ea4c9a51fc6fcf90ad86e595a20a04a8912 /tileset.rb | |
| parent | 5942751cd24345cfe1fb4a40f9390ae99fd0a57d (diff) | |
| download | tileset-map-editor-a62ac5e77570516c399f9bad114aaba7bf20ff67.tar.gz tileset-map-editor-a62ac5e77570516c399f9bad114aaba7bf20ff67.zip | |
testing grid
Diffstat (limited to 'tileset.rb')
| -rw-r--r-- | tileset.rb | 30 |
1 files changed, 16 insertions, 14 deletions
@@ -3,13 +3,13 @@ # A Tileset :) TODO class Tileset attr_reader :tileset, - :x_dimension, :y_dimension, + :columns, :rows, :width, :height - def initialize(directory, x_dimension, y_dimension) + def initialize(directory, width, height) puts directory - @x_dimension = x_dimension - @y_dimension = y_dimension + @width = width + @height = height if directory[-1] == '/' directory = "#{directory}*" elsif directory[-1] != '*' @@ -20,28 +20,30 @@ class Tileset images = Dir[directory].sort factors = divisors_of(images.length) puts factors - @width = factors[factors.length / 2] - @height = factors[(factors.length / 2) - 1] + @columns = factors[factors.length / 2] + @rows = factors[(factors.length / 2) - 1] - @tileset = Array.new(@width, nil) { Array.new(@height, nil) } + @tileset = Array.new(@columns, nil) { Array.new(@rows, nil) } images.each_with_index do |image, index| - x = index % @width + x = index % @columns puts "Image #{index} is #{image}" #@tileset[x] = [] if @tileset[x].nil? - @tileset[x][((index - x) / @width)] = image + @tileset[x][((index - x) / @columns)] = image #puts @tileset[x][((index - x) / 23)] end end - def create_image(x_tile, y_tile) - Image.new(tileset[x_tile][y_tile], - width: x_dimension, - height: y_dimension) + def create_image(column:, row:, x: 0, y: 0) + Image.new(tileset[column][row], + width: width, + height: height, + x: x, + y: y) end private def divisors_of(num) - (1..num).select { |n|num % n == 0 } + (1..num).select { |n| (num % n).zero? } end end |
