summaryrefslogtreecommitdiffhomepage
path: root/lib/ruby2d/camera.rb
diff options
context:
space:
mode:
authortradam <git.tradam.fyi>2021-09-24 18:34:08 -0400
committertradam <git.tradam.fyi>2021-09-24 18:34:08 -0400
commit205282994bba06b3ec6507ac0f42f66b13878db2 (patch)
treecd3a7bf117ac88a4ca546bb06da7ae6de94274ad /lib/ruby2d/camera.rb
parentf660af1767ec6243e92f1a41c2d9636e2b88790d (diff)
downloadruby2d-camera-205282994bba06b3ec6507ac0f42f66b13878db2.tar.gz
ruby2d-camera-205282994bba06b3ec6507ac0f42f66b13878db2.zip
Fixed changing z-index after the shape has been added not applying at all
Diffstat (limited to 'lib/ruby2d/camera.rb')
-rw-r--r--lib/ruby2d/camera.rb17
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/ruby2d/camera.rb b/lib/ruby2d/camera.rb
index 8037b4d..3213e16 100644
--- a/lib/ruby2d/camera.rb
+++ b/lib/ruby2d/camera.rb
@@ -16,6 +16,16 @@ module Ruby2D
def objects
@objects ||= []
end
+
+ end
+
+ def self._sort_by_z
+ @sort_by_z = true
+ end
+
+ def self._resolve_z_sorting
+ objects.sort_by!(&:z) if @sort_by_z
+ @sort_by_z = false
end
def self.debug_x
@@ -37,9 +47,9 @@ module Ruby2D
# Adding objects so they are
# tracked by the Camera
def self.<<(item)
- objects.push(item) unless objects.include?(item)
- objects.sort_by! do |n|
- n.z
+ unless objects.include?(item)
+ objects.push(item)
+ self._sort_by_z
end
end
@@ -50,6 +60,7 @@ module Ruby2D
# Redraw all objects that
# are tracked by the Camera
def self._redraw(auto_purge: false)
+ self._resolve_z_sorting
objects.each(&:_draw)
end