1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-02-20 12:33:14 +00:00

Fix a bug in integer zoom (#896)

* Update CameraMovement.gd

* improvement to correction in fit to frame
This commit is contained in:
Variable 2023-08-06 20:54:01 +05:00 committed by GitHub
parent 74e3ff9f0b
commit edc6ba5944
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -139,6 +139,8 @@ func zoom_camera(dir: int) -> void:
var new_zoom := zoom + zoom_margin
if Global.integer_zoom:
new_zoom = zoom / (Vector2.ONE - dir * zoom)
if new_zoom == Vector2.INF:
return
if new_zoom > zoom_min && new_zoom <= zoom_max:
var new_offset := (
offset
@ -154,6 +156,8 @@ func zoom_camera(dir: int) -> void:
var zoom_margin := zoom * dir / 10
if Global.integer_zoom:
zoom_margin = (zoom / (Vector2.ONE - dir * zoom)) - zoom
if zoom_margin == Vector2.INF:
return
if zoom + zoom_margin > zoom_min:
zoom += zoom_margin
if zoom > zoom_max:
@ -192,6 +196,10 @@ func zoom_100() -> void:
func fit_to_frame(size: Vector2) -> void:
# temporarily disable integer zoom
var reset_integer_zoom := Global.integer_zoom
if reset_integer_zoom:
Global.integer_zoom = !Global.integer_zoom
offset = size / 2
# Adjust to the rotated size:
@ -226,6 +234,8 @@ func fit_to_frame(size: Vector2) -> void:
ratio = clamp(ratio, 0.1, ratio)
zoom = Vector2(1 / ratio, 1 / ratio)
emit_signal("zoom_changed")
if reset_integer_zoom:
Global.integer_zoom = !Global.integer_zoom
func save_values_to_project() -> void: