diff options
| -rw-r--r-- | house.rb | 1 | ||||
| -rw-r--r-- | lib/camera/camera.rb | 14 | ||||
| -rw-r--r-- | run.rb | 2 |
3 files changed, 14 insertions, 3 deletions
@@ -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 @@ -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 |
