diff options
| author | tradam <git.tradam.fyi> | 2021-09-24 18:34:08 -0400 |
|---|---|---|
| committer | tradam <git.tradam.fyi> | 2021-09-24 18:34:08 -0400 |
| commit | 205282994bba06b3ec6507ac0f42f66b13878db2 (patch) | |
| tree | cd3a7bf117ac88a4ca546bb06da7ae6de94274ad /lib/ruby2d/camera.rb | |
| parent | f660af1767ec6243e92f1a41c2d9636e2b88790d (diff) | |
| download | ruby2d-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.rb | 17 |
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 |
