summaryrefslogtreecommitdiffhomepage
path: root/camera.rb
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2021-01-21 17:33:56 -0500
committerrealtradam <[email protected]>2021-01-21 17:33:56 -0500
commit5aabbc0246caf6dd65b5803998fc0b14c15b55d1 (patch)
tree3fa7aef88fe743062c2f05186b5bd312314e5405 /camera.rb
parent74cbc0ddb7875b447e002bfc0d5ae5e7f23f4000 (diff)
downloadruby2d-camera-5aabbc0246caf6dd65b5803998fc0b14c15b55d1.tar.gz
ruby2d-camera-5aabbc0246caf6dd65b5803998fc0b14c15b55d1.zip
fixed zoom coordinate bug
Diffstat (limited to 'camera.rb')
-rw-r--r--camera.rb14
1 files changed, 7 insertions, 7 deletions
diff --git a/camera.rb b/camera.rb
index b3cd116..1ccea91 100644
--- a/camera.rb
+++ b/camera.rb
@@ -28,9 +28,9 @@ class Camera
object.x *= zoom
object.y *= zoom
end
+ self.zoom_level *= zoom
move_by(Window.width / 2 * (zoom - 1),
Window.height / 2 * (zoom - 1))
- self.zoom_level *= zoom
end
def self.zoom_to(zoom)
@@ -38,8 +38,8 @@ class Camera
end
def self.follow(item)
- move_to((item.x - (Window.width / 2)) / elasticity,
- (item.y - (Window.height / 2)) / elasticity)
+ move_to(((item.x + item.size / 2) - (Window.width / 2)) / elasticity,
+ ((item.y + item.size / 2) - (Window.height / 2)) / elasticity)
end
def self.objects
@@ -59,8 +59,8 @@ class Camera
end
def self.move_by(x, y)
- camera_position[0] += x
- camera_position[1] += y
+ camera_position[0] += x / zoom_level
+ camera_position[1] += y / zoom_level
objects.each do |object|
object.x -= x
object.y -= y
@@ -68,8 +68,8 @@ class Camera
end
def self.move_to(x, y)
- self.camera_position = [x + camera_position[0],
- y + camera_position[1]]
+ self.camera_position = [x / zoom_level + camera_position[0],
+ y / zoom_level + camera_position[1]]
objects.each do |object|
object.x -= x
object.y -= y