aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/player/follow_camera.gd14
-rw-r--r--client/project.godot4
2 files changed, 13 insertions, 5 deletions
diff --git a/client/player/follow_camera.gd b/client/player/follow_camera.gd
index 447540f3..ebe41f00 100644
--- a/client/player/follow_camera.gd
+++ b/client/player/follow_camera.gd
@@ -65,12 +65,20 @@ func _input(_event):
if _disable_input: return
if Input.is_action_just_pressed("reset"):
reset()
+ if _event is InputEventMagnifyGesture:
+ zoom(1 - _event.factor)
func reset():
angle_target = 0
angle_up_target = 1
camera_distance_target = 10
+func zoom(zoom_dist: float) -> void:
+ zoom_dist += float(Input.is_action_just_pressed("zoom_out_discrete")) * DISCRETE_DURATION
+ zoom_dist -= float(Input.is_action_just_pressed("zoom_in_discrete")) * DISCRETE_DURATION
+ camera_distance_target *= exp(zoom_dist * ZOOM_SPEED)
+ camera_distance_target = clamp(camera_distance_target, MIN_ZOOM, MAX_ZOOM)
+
func follow(delta):
if Global.get_setting("gameplay.first_person"):
global_position = target.global_position + Vector3.UP * 1.33
@@ -109,11 +117,7 @@ func follow(delta):
ground = G.interpolate(ground, target.position + Vector3(0., 0.5, 0.), delta * MOVE_WEIGHT)
if not _disable_input:
- var zoom_dist = Input.get_axis("zoom_in", "zoom_out") * delta
- zoom_dist += float(Input.is_action_just_pressed("zoom_out_discrete")) * DISCRETE_DURATION
- zoom_dist -= float(Input.is_action_just_pressed("zoom_in_discrete")) * DISCRETE_DURATION
- camera_distance_target *= exp(zoom_dist * ZOOM_SPEED)
- camera_distance_target = clamp(camera_distance_target, MIN_ZOOM, MAX_ZOOM)
+ zoom(Input.get_axis("zoom_in", "zoom_out") * delta)
camera_distance = G.interpolate(camera_distance, camera_distance_target, delta * (ZOOM_WEIGHT_AUTO if autozoom else ZOOM_WEIGHT))
diff --git a/client/project.godot b/client/project.godot
index c20d4165..c9146766 100644
--- a/client/project.godot
+++ b/client/project.godot
@@ -215,6 +215,10 @@ menu={
]
}
+[input_devices]
+
+pointing/android/enable_pan_and_scale_gestures=true
+
[rendering]
renderer/rendering_method.mobile="gl_compatibility"