diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2020-07-20 12:26:48 +0200 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2020-07-20 12:26:48 +0200 |
commit | 89723ca94bd21f1ae14592a682e9c0e5c5f04a74 (patch) | |
tree | 7b5c67f9d05f253abc961c901336780755543d6d /Camera.gd | |
parent | f3c455fbfb8b28b095c161eb7769ed92f1acb862 (diff) | |
download | godot-hexgrid-89723ca94bd21f1ae14592a682e9c0e5c5f04a74.zip godot-hexgrid-89723ca94bd21f1ae14592a682e9c0e5c5f04a74.tar.gz |
move demo files into subdir demo
Diffstat (limited to 'Camera.gd')
-rw-r--r-- | Camera.gd | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/Camera.gd b/Camera.gd deleted file mode 100644 index 0dc6074..0000000 --- a/Camera.gd +++ /dev/null @@ -1,36 +0,0 @@ -extends Camera2D - -var margin :Vector2 -var window : Vector2 -var map_center : Vector2 -var texture_size : Vector2 -var zoom_boundaries : Vector2 - -func _ready(): - margin = Vector2(0, 0) - -func configure(w : Vector2, c : Vector2, ts : Vector2) -> void: - window = w - map_center = c - texture_size = ts - var zout : float = max((texture_size.x + margin.x) / window.x, (texture_size.y + margin.y) / window.y) - zoom_boundaries = Vector2(zout - 0.5, zout) - update_camera(0, 0, zoom_boundaries.y) - -func update_camera(x : float, y : float, z : float) -> void: - if z != 0: - zoom.x = clamp(zoom.x + z, zoom_boundaries.x, zoom_boundaries.y) - zoom.y = zoom.x - position.x += x - position.y += y - var delta = texture_size + margin - (window * zoom.x) - if (delta.x <= 0): - position.x = map_center.x - else: - var dx = int(delta.x / 2) - position.x = clamp(position.x, map_center.x - dx, map_center.x + dx) - if (delta.y <= 0): - position.y = map_center.y - else: - var dy = int(delta.y / 2) - position.y = clamp(position.y, map_center.y - dy, map_center.y + dy) |