summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--house.rb1
-rw-r--r--lib/camera/camera.rb14
-rw-r--r--run.rb2
3 files changed, 14 insertions, 3 deletions
diff --git a/house.rb b/house.rb
index 1da0d58..6d309fa 100644
--- a/house.rb
+++ b/house.rb
@@ -82,6 +82,7 @@ class House
@objects.each do |item|
Camera.remove item
item.remove
+ puts item
end
end
diff --git a/lib/camera/camera.rb b/lib/camera/camera.rb
index 6a6dd3d..7079d56 100644
--- a/lib/camera/camera.rb
+++ b/lib/camera/camera.rb
@@ -65,8 +65,18 @@ module Camera
# Redraw all objects that
# are tracked by the Camera
- def self.redraw
- objects.each(&:redraw)
+ def self.redraw(auto_purge: true)
+ if auto_purge
+ objects.each do |item|
+ if item.nil?
+ objects.delete(obj)
+ else
+ item.redraw
+ end
+ end
+ else
+ objects.each(&:redraw)
+ end
end
# Variables changing Camera properties
diff --git a/run.rb b/run.rb
index 5197978..30881df 100644
--- a/run.rb
+++ b/run.rb
@@ -164,7 +164,7 @@ update do
if !@scene_transition_into && !@scene_transition_out
Camera.zoom += ((-[Math.sqrt(((@player.x + (@player.width / 2) - Camera.x)**2) + ((@player.y + (@player.width / 2) - Camera.y)**2)), 350].min * 0.004) + 2 - Camera.zoom) * 0.25
Camera.x += (@player.x + (@player.width / 2) - Camera.x) * 0.025
- Camera.y += (@player.y + (@player.height / 2)- Camera.y) * 0.025
+ Camera.y += (@player.y + (@player.height / 2) - Camera.y) * 0.025
elsif @scene_transition_into
if Camera.zoom < 250
Camera.zoom *= 1.05