diff options
author | nokoe <nokoe@mailbox.org> | 2025-06-23 15:21:50 +0200 |
---|---|---|
committer | nokoe <nokoe@mailbox.org> | 2025-06-23 15:21:50 +0200 |
commit | e9306dcbf6c8c520b03c26a26b72a8bcaa2a6020 (patch) | |
tree | c0dac4589f82de3e6019a75f9bbfca39ef1fe329 /client | |
parent | 5d282cc162729329f124f24cd88386ee1deefa41 (diff) | |
download | hurrycurry-e9306dcbf6c8c520b03c26a26b72a8bcaa2a6020.tar hurrycurry-e9306dcbf6c8c520b03c26a26b72a8bcaa2a6020.tar.bz2 hurrycurry-e9306dcbf6c8c520b03c26a26b72a8bcaa2a6020.tar.zst |
move zoom by button out of zoom function
Diffstat (limited to 'client')
-rw-r--r-- | client/player/follow_camera.gd | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/client/player/follow_camera.gd b/client/player/follow_camera.gd index ebe41f00..cdfe5438 100644 --- a/client/player/follow_camera.gd +++ b/client/player/follow_camera.gd @@ -61,12 +61,12 @@ func _process(delta): if target != null: follow(delta) -func _input(_event): +func _input(event): if _disable_input: return if Input.is_action_just_pressed("reset"): reset() - if _event is InputEventMagnifyGesture: - zoom(1 - _event.factor) + if event is InputEventMagnifyGesture: + zoom(1 - event.factor) func reset(): angle_target = 0 @@ -74,8 +74,6 @@ func reset(): 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) @@ -117,7 +115,10 @@ func follow(delta): ground = G.interpolate(ground, target.position + Vector3(0., 0.5, 0.), delta * MOVE_WEIGHT) if not _disable_input: - zoom(Input.get_axis("zoom_in", "zoom_out") * delta) + 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 + zoom(zoom_dist) camera_distance = G.interpolate(camera_distance, camera_distance_target, delta * (ZOOM_WEIGHT_AUTO if autozoom else ZOOM_WEIGHT)) |