File tree Expand file tree Collapse file tree 21 files changed +38
-51
lines changed
occlusion_culling_mesh_lod
window_management/observer
viewport/dynamic_split_screen Expand file tree Collapse file tree 21 files changed +38
-51
lines changed Original file line number Diff line number Diff line change @@ -8,7 +8,7 @@ var glow_map := preload("res://glow_map.webp")
88
99func _unhandled_input (event : InputEvent ) -> void :
1010 if event is InputEventMouseMotion and event .button_mask > 0 :
11- cave .position .x = clampf (cave .position .x + event .relative .x , - CAVE_LIMIT , 0 )
11+ cave .position .x = clampf (cave .position .x + event .screen_relative .x , - CAVE_LIMIT , 0 )
1212
1313 if event .is_action_pressed ("toggle_glow_map" ):
1414 if $ WorldEnvironment .environment .glow_map :
Original file line number Diff line number Diff line change @@ -8,7 +8,6 @@ var tester_index := 0
88var rot_x := - TAU / 16 # This must be kept in sync with RotationX.
99var rot_y := TAU / 8 # This must be kept in sync with CameraHolder.
1010var camera_distance := 2.0
11- var base_height := int (ProjectSettings .get_setting ("display/window/size/viewport_height" ))
1211
1312@onready var testers : Node3D = $ Testers
1413@onready var camera_holder : Node3D = $ CameraHolder # Has a position and rotates on Y.
@@ -40,8 +39,8 @@ func _unhandled_input(event: InputEvent) -> void:
4039 camera_distance = clamp (camera_distance , 1.5 , 6 )
4140
4241 if event is InputEventMouseMotion and event .button_mask & MAIN_BUTTONS :
43- # Compensate motion speed to be resolution-independent (based on the window height) .
44- var relative_motion : Vector2 = event .relative * DisplayServer . window_get_size (). y / base_height
42+ # Use `screen_relative` to make mouse sensitivity independent of viewport resolution .
43+ var relative_motion : Vector2 = event .screen_relative
4544 rot_y -= relative_motion .x * ROT_SPEED
4645 rot_x -= relative_motion .y * ROT_SPEED
4746 rot_x = clamp (rot_x , - 1.57 , 0 )
Original file line number Diff line number Diff line change @@ -8,7 +8,6 @@ var tester_index := 0
88var rot_x := - TAU / 16 # This must be kept in sync with RotationX.
99var rot_y := TAU / 8 # This must be kept in sync with CameraHolder.
1010var camera_distance := 4.0
11- var base_height := int (ProjectSettings .get_setting ("display/window/size/viewport_height" ))
1211
1312@onready var testers : Node3D = $ Testers
1413@onready var camera_holder : Node3D = $ CameraHolder # Has a position and rotates on Y.
@@ -35,8 +34,8 @@ func _unhandled_input(event: InputEvent) -> void:
3534 camera_distance = clamp (camera_distance , 1.5 , 6 )
3635
3736 if event is InputEventMouseMotion and event .button_mask & MAIN_BUTTONS :
38- # Compensate motion speed to be resolution-independent (based on the window height) .
39- var relative_motion : Vector2 = event .relative * DisplayServer . window_get_size (). y / base_height
37+ # Use `screen_relative` to make mouse sensitivity independent of viewport resolution .
38+ var relative_motion : Vector2 = event .screen_relative
4039 rot_y -= relative_motion .x * ROT_SPEED
4140 rot_x -= relative_motion .y * ROT_SPEED
4241 rot_x = clamp (rot_x , - 1.57 , 0 )
Original file line number Diff line number Diff line change @@ -8,7 +8,6 @@ var tester_index := 0
88var rot_x := deg_to_rad (- 22.5 ) # This must be kept in sync with RotationX.
99var rot_y := deg_to_rad (90 ) # This must be kept in sync with CameraHolder.
1010var zoom := 1.5
11- var base_height : = int (ProjectSettings .get_setting ("display/window/size/viewport_height" ))
1211
1312@onready var testers : Node3D = $ Testers
1413@onready var camera_holder : Node3D = $ CameraHolder # Has a position and rotates on Y.
@@ -49,8 +48,8 @@ func _unhandled_input(event: InputEvent) -> void:
4948 zoom = clampf (zoom , 1.5 , 4 )
5049
5150 if event is InputEventMouseMotion and event .button_mask & MAIN_BUTTONS :
52- # Compensate motion speed to be resolution-independent (based on the window height) .
53- var relative_motion : Vector2 = event .relative * DisplayServer . window_get_size (). y / base_height
51+ # Use `screen_relative` to make mouse sensitivity independent of viewport resolution .
52+ var relative_motion : Vector2 = event .screen_relative
5453 rot_y -= relative_motion .x * ROT_SPEED
5554 rot_x -= relative_motion .y * ROT_SPEED
5655 rot_x = clampf (rot_x , deg_to_rad (- 90 ), 0 )
Original file line number Diff line number Diff line change @@ -14,9 +14,9 @@ func _input(event: InputEvent) -> void:
1414 # Mouse look (only if the mouse is captured).
1515 if event is InputEventMouseMotion and Input .get_mouse_mode () == Input .MOUSE_MODE_CAPTURED :
1616 # Horizontal mouse look.
17- rot .y -= event .relative .x * MOUSE_SENSITIVITY
17+ rot .y -= event .screen_relative .x * MOUSE_SENSITIVITY
1818 # Vertical mouse look.
19- rot .x = clamp (rot .x - event .relative .y * MOUSE_SENSITIVITY , - 1.57 , 1.57 )
19+ rot .x = clamp (rot .x - event .screen_relative .y * MOUSE_SENSITIVITY , - 1.57 , 1.57 )
2020 transform .basis = Basis .from_euler (rot )
2121
2222 if event .is_action_pressed ("toggle_mouse_capture" ):
Original file line number Diff line number Diff line change @@ -204,8 +204,8 @@ func process_movement(delta):
204204# Mouse based camera movement
205205func _input (event ):
206206 if event is InputEventMouseMotion and Input .get_mouse_mode () == Input .MOUSE_MODE_CAPTURED :
207- rotate_y (deg_to_rad (event .relative .x * MOUSE_SENSITIVITY * - 1 ))
208- camera_holder .rotate_x (deg_to_rad (event .relative .y * MOUSE_SENSITIVITY ))
207+ rotate_y (deg_to_rad (event .screen_relative .x * MOUSE_SENSITIVITY * - 1 ))
208+ camera_holder .rotate_x (deg_to_rad (event .screen_relative .y * MOUSE_SENSITIVITY ))
209209
210210 # We need to clamp the camera's rotation so we cannot rotate ourselves upside down
211211 var camera_rot = camera_holder .rotation_degrees
Original file line number Diff line number Diff line change @@ -8,7 +8,6 @@ var tester_index := 0
88var rot_x := - TAU / 16 # This must be kept in sync with RotationX.
99var rot_y := TAU / 8 # This must be kept in sync with CameraHolder.
1010var camera_distance := 2.0
11- var base_height : = int (ProjectSettings .get_setting ("display/window/size/viewport_height" ))
1211
1312@onready var testers : Node3D = $ Testers
1413@onready var camera_holder : Node3D = $ CameraHolder # Has a position and rotates on Y.
@@ -36,8 +35,8 @@ func _unhandled_input(event: InputEvent) -> void:
3635 camera_distance = clamp (camera_distance , 1.5 , 6 )
3736
3837 if event is InputEventMouseMotion and event .button_mask & MAIN_BUTTONS :
39- # Compensate motion speed to be resolution-independent (based on the window height) .
40- var relative_motion : Vector2 = event .relative * DisplayServer . window_get_size (). y / base_height
38+ # Use `screen_relative` to make mouse sensitivity independent of viewport resolution .
39+ var relative_motion : Vector2 = event .screen_relative
4140 rot_y -= relative_motion .x * ROT_SPEED
4241 rot_x -= relative_motion .y * ROT_SPEED
4342 rot_x = clamp (rot_x , - 1.57 , 0 )
Original file line number Diff line number Diff line change @@ -8,7 +8,6 @@ var tester_index := 0
88var rot_x := deg_to_rad (- 22.5 ) # This must be kept in sync with RotationX.
99var rot_y := deg_to_rad (90 ) # This must be kept in sync with CameraHolder.
1010var zoom := 2.5
11- var base_height := int (ProjectSettings .get_setting ("display/window/size/viewport_height" ))
1211
1312@onready var testers : Node3D = $ Testers
1413@onready var camera_holder : Node3D = $ CameraHolder # Has a position and rotates on Y.
@@ -36,8 +35,8 @@ func _unhandled_input(event: InputEvent) -> void:
3635 zoom = clamp (zoom , 1.5 , 4 )
3736
3837 if event is InputEventMouseMotion and event .button_mask & MAIN_BUTTONS :
39- # Compensate motion speed to be resolution-independent (based on the window height) .
40- var relative_motion : Vector2 = event .relative * DisplayServer . window_get_size (). y / base_height
38+ # Use `screen_relative` to make mouse sensitivity independent of viewport resolution .
39+ var relative_motion : Vector2 = event .screen_relative
4140 rot_y -= relative_motion .x * ROT_SPEED
4241 rot_x -= relative_motion .y * ROT_SPEED
4342 rot_x = clamp (rot_x , deg_to_rad (- 90 ), 0 )
Original file line number Diff line number Diff line change @@ -10,7 +10,6 @@ var tester_index := 0
1010var rot_x := - 0.5 # This must be kept in sync with RotationX.
1111var rot_y := - 0.5 # This must be kept in sync with CameraHolder.
1212var zoom := 5.0
13- var base_height := int (ProjectSettings .get_setting ("display/window/size/viewport_height" ))
1413
1514var backgrounds : Array [Dictionary ] = [
1615 { path = "res://backgrounds/schelde.hdr" , name = "Riverside" },
@@ -49,8 +48,8 @@ func _unhandled_input(event: InputEvent) -> void:
4948 camera .position .z = zoom
5049
5150 if event is InputEventMouseMotion and event .button_mask & MAIN_BUTTONS :
52- # Compensate motion speed to be resolution-independent (based on the window height) .
53- var relative_motion : Vector2 = event .relative * DisplayServer . window_get_size (). y / base_height
51+ # Use `screen_relative` to make mouse sensitivity independent of viewport resolution .
52+ var relative_motion : Vector2 = event .screen_relative
5453 rot_y -= relative_motion .x * ROT_SPEED
5554 rot_y = clamp (rot_y , - 1.95 , 1.95 )
5655 rot_x -= relative_motion .y * ROT_SPEED
Original file line number Diff line number Diff line change @@ -24,5 +24,5 @@ func _unhandled_input(event: InputEvent) -> void:
2424
2525 elif event is InputEventMouseMotion :
2626 if event .button_mask & (MOUSE_BUTTON_MASK_MIDDLE + MOUSE_BUTTON_MASK_RIGHT ):
27- _cam_rotation + = event .relative .x * 0.005
27+ _cam_rotation - = event .screen_relative .x * 0.005
2828 $ CameraBase .set_rotation (Vector3 .UP * _cam_rotation )
You can’t perform that action at this time.
0 commit comments