summaryrefslogtreecommitdiff
path: root/Camera.gd
diff options
context:
space:
mode:
Diffstat (limited to 'Camera.gd')
-rw-r--r--Camera.gd26
1 files changed, 26 insertions, 0 deletions
diff --git a/Camera.gd b/Camera.gd
new file mode 100644
index 0000000..c49233a
--- /dev/null
+++ b/Camera.gd
@@ -0,0 +1,26 @@
+extends Camera2D
+
+
+var is_in_drag_mode = false
+var drag_anchor = Vector2.ZERO
+
+
+func _input(event):
+ if event.is_action("camera_zoom_out"):
+ var new_zoom = max(zoom.x - 0.1, 0.5)
+ zoom = Vector2(new_zoom, new_zoom)
+ if event.is_action("camera_zoom_in"):
+ var new_zoom = min(zoom.x + 0.1, 3)
+ zoom = Vector2(new_zoom, new_zoom)
+ #global_position -= (global_position + (get_viewport_rect().size/2) - get_global_mouse_position())
+
+ if event.is_action_pressed("camera_drag"):
+ is_in_drag_mode = true
+ drag_anchor = get_global_mouse_position()
+ elif event.is_action_released("camera_drag"):
+ is_in_drag_mode = false
+
+
+func _process(_delta):
+ if is_in_drag_mode:
+ global_position += drag_anchor - get_global_mouse_position()