summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--run.rb58
-rw-r--r--tileset.rb47
2 files changed, 66 insertions, 39 deletions
diff --git a/run.rb b/run.rb
index 2c30699..06e0fc6 100644
--- a/run.rb
+++ b/run.rb
@@ -4,48 +4,58 @@ require 'ruby2d'
require_relative 'lib/camera/camera'
require_relative 'tileset'
+set width: 1024, height: 720
+
@eks = 0
@why = 0
on :key_down do |event|
if event.key == 'w'
@why -= 1
- @why %= 13
end
if event.key == 's'
@why += 1
- @why %= 13
end
if event.key == 'a'
@eks -= 1
- @eks %= 23
end
if event.key == 'd'
@eks += 1
- @eks %= 23
end
end
-@test = Sprite.new('./Monster02.png',
- clip_width: 48,
- clip_height: 48,
- width: 100,
- height: 100,
- x: 0,
- y: 0,
- loop: true)
-@test2 = Sprite.new('./Monster02-RGB.png',
- clip_width: 48,
- clip_height: 48,
- width: 100,
- height: 100,
- x: 100,
- y: 0,
- loop: true)
+on :mouse_up do |event|
+ case event.button
+ when :left
+ @new = @yep.create_image(@selected_item[0], @selected_item[1])
+ @new.x = Window.mouse_x - (Window.mouse_x % 128)
+ @new.y = Window.mouse_y - (Window.mouse_y % 128)
+ end
+end
+on :mouse_scroll do |event|
+ @selected_item[0] += event.delta_y
+ puts "=="
+ pp @selected_item
+ @selected_item[1] += @selected_item[0] / @yep.width
+ @selected_item[0] %= @yep.width
+ pp @selected_item
+ @selected_item[1] %= @yep.height
+ pp @selected_item
+end
+@yep = Tileset.new('./assets/kenny/PNG/128', 128, 128)
+ thing.each do |stuff|
+ pp stuff
+ end
+end
+
+@selected_item = [0,0]
+@selected_image = @yep.create_image(@selected_item[0], @selected_item[1])
+
update do
- #Camera << Image.new(Tileset.get[@eks][@why])
- #Camera.redraw
+ @selected_image.remove
+ @selected_image = @yep.create_image(@selected_item[0], @selected_item[1])
+ @selected_image.x = Window.mouse_x - (Window.mouse_x % 128)
+ @selected_image.y = Window.mouse_y - (Window.mouse_y % 128)
end
show
diff --git a/tileset.rb b/tileset.rb
index ad38bbd..6f32d39 100644
--- a/tileset.rb
+++ b/tileset.rb
@@ -1,28 +1,45 @@
# frozen_string_literal: true
+# A Tileset :) TODO
class Tileset
+ attr_reader :tileset,
+ :x_dimension, :y_dimension,
+ :width, :height
+
def initialize(directory, x_dimension, y_dimension)
- @tileset = Array.new(23) { Array.new(13) }
- (1..299).each do |iterator|
- iter = iterator - 1
- iter = 299 if iter.zero?
- x = (iterator - 1) % 23
- stylized = iter.to_s
- stylized = "0#{stylized}" while stylized.length < 3
- @tileset[x][((iterator - x) / 23)] = "./assets/kenny/PNG/128/towerDefense_tile#{stylized}.png"
- puts @tileset[x][((iterator - x) / 23)]
+ puts directory
+ @x_dimension = x_dimension
+ @y_dimension = y_dimension
+ if directory[-1] == '/'
+ directory = "#{directory}*"
+ elsif directory[-1] != '*'
+ directory = "#{directory}/*"
end
- (0...13).each do |why|
- (0...23).each do |eks|
- end
+
+ puts directory
+ images = Dir[directory].sort
+ factors = divisors_of(images.length)
+ puts factors
+ @width = factors[factors.length / 2]
+ @height = factors[(factors.length / 2) - 1]
+
+ @tileset = Array.new(@width, nil) { Array.new(@height, nil) }
+ images.each_with_index do |image, index|
+ x = index % @width
+ puts "Image #{index} is #{image}"
+ #@tileset[x] = [] if @tileset[x].nil?
+ @tileset[x][((index - x) / @width)] = image
+ #puts @tileset[x][((index - x) / 23)]
end
end
- def get
- @tileset
+ def create_image(x_tile, y_tile)
+ Image.new(tileset[x_tile][y_tile],
+ width: x_dimension,
+ height: y_dimension)
end
- #private
+ private
def divisors_of(num)
(1..num).select { |n|num % n == 0 }