From 205282994bba06b3ec6507ac0f42f66b13878db2 Mon Sep 17 00:00:00 2001 From: tradam Date: Fri, 24 Sep 2021 18:34:08 -0400 Subject: Fixed changing z-index after the shape has been added not applying at all --- lib/ruby2d/camera.rb | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'lib/ruby2d/camera.rb') 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 -- cgit v1.2.3