diff options
| author | realtradam <[email protected]> | 2021-01-21 17:33:56 -0500 |
|---|---|---|
| committer | realtradam <[email protected]> | 2021-01-21 17:33:56 -0500 |
| commit | 5aabbc0246caf6dd65b5803998fc0b14c15b55d1 (patch) | |
| tree | 3fa7aef88fe743062c2f05186b5bd312314e5405 /camera.rb | |
| parent | 74cbc0ddb7875b447e002bfc0d5ae5e7f23f4000 (diff) | |
| download | ruby2d-camera-5aabbc0246caf6dd65b5803998fc0b14c15b55d1.tar.gz ruby2d-camera-5aabbc0246caf6dd65b5803998fc0b14c15b55d1.zip | |
fixed zoom coordinate bug
Diffstat (limited to 'camera.rb')
| -rw-r--r-- | camera.rb | 14 |
1 files changed, 7 insertions, 7 deletions
@@ -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 |
