mirror of
https://github.com/godotengine/godot-demo-projects.git
synced 2026-01-04 23:10:08 +01:00
Improve user experience: Add movement on the Y-axis, Show FPS. List options backwards (#1283)
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
This commit is contained in:
@@ -30,14 +30,16 @@ func _input(input_event: InputEvent) -> void:
|
||||
func _process(delta: float) -> void:
|
||||
var motion := Vector3(
|
||||
Input.get_axis(&"move_left", &"move_right"),
|
||||
0,
|
||||
0.0,
|
||||
Input.get_axis(&"move_forward", &"move_back")
|
||||
)
|
||||
var motion_y: float = Input.get_axis(&"move_down", &"move_up")
|
||||
|
||||
# Normalize motion to prevent diagonal movement from being
|
||||
# `sqrt(2)` times faster than straight movement.
|
||||
motion = motion.normalized()
|
||||
|
||||
velocity += MOVE_SPEED * delta * (transform.basis * motion)
|
||||
velocity += Vector3(0.0, MOVE_SPEED * delta * motion_y, 0.0)
|
||||
velocity *= 0.85
|
||||
position += velocity
|
||||
|
||||
@@ -77,6 +77,16 @@ toggle_mouse_capture={
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194341,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
move_up={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
move_down={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":81,"key_label":0,"unicode":113,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
|
||||
[rendering]
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ enum ReflectionProbeMode {
|
||||
NONE,
|
||||
ONCE,
|
||||
ALWAYS,
|
||||
MAX,
|
||||
MAX, # Maximum value of the enum, used internally.
|
||||
}
|
||||
|
||||
enum SSILMode {
|
||||
@@ -59,6 +59,7 @@ var is_compatibility: bool = false
|
||||
@onready var lightmap_gi_all_data: LightmapGIData = $LightmapGIAll.light_data
|
||||
@onready var environment: Environment = $WorldEnvironment.environment
|
||||
@onready var gi_mode_label: Label = $GIMode
|
||||
@onready var fps: Label = $FPS
|
||||
@onready var reflection_probe_mode_label: Label = $ReflectionProbeMode
|
||||
@onready var reflection_probe: ReflectionProbe = $Camera/ReflectiveSphere/ReflectionProbe
|
||||
@onready var ssil_mode_label: Label = $SSILMode
|
||||
@@ -95,19 +96,26 @@ Escape or F10: Toggle mouse capture"""
|
||||
|
||||
func _input(input_event: InputEvent) -> void:
|
||||
if input_event.is_action_pressed(&"cycle_gi_mode"):
|
||||
var incr: int = -1 if Input.is_key_pressed(KEY_SHIFT) else 1
|
||||
if is_compatibility:
|
||||
# Only LightmapGI is supported in Compatibility.
|
||||
# Note that the actual GI mode is the opposite of what's being set here, due to a bug
|
||||
# in the Compatibility rendering method.
|
||||
set_gi_mode(wrapi(gi_mode + 1, 0, GIMode.VOXEL_GI))
|
||||
set_gi_mode(wrapi(gi_mode + incr, 0, GIMode.VOXEL_GI))
|
||||
else:
|
||||
set_gi_mode(wrapi(gi_mode + 1, 0, GIMode.MAX))
|
||||
set_gi_mode(wrapi(gi_mode + incr, 0, GIMode.MAX))
|
||||
|
||||
if input_event.is_action_pressed(&"cycle_reflection_probe_mode"):
|
||||
set_reflection_probe_mode(wrapi(reflection_probe_mode + 1, 0, ReflectionProbeMode.MAX))
|
||||
var incr: int = -1 if Input.is_key_pressed(KEY_SHIFT) else 1
|
||||
set_reflection_probe_mode(wrapi(reflection_probe_mode + incr, 0, ReflectionProbeMode.MAX))
|
||||
|
||||
if input_event.is_action_pressed(&"cycle_ssil_mode"):
|
||||
set_ssil_mode(wrapi(ssil_mode + 1, 0, SSILMode.MAX))
|
||||
var incr: int = -1 if Input.is_key_pressed(KEY_SHIFT) else 1
|
||||
set_ssil_mode(wrapi(ssil_mode + incr, 0, SSILMode.MAX))
|
||||
|
||||
|
||||
func _physics_process(_delta: float) -> void:
|
||||
fps.text = "%d FPS (%.2f mspf)" % [Engine.get_frames_per_second(), 1000.0 / Engine.get_frames_per_second()]
|
||||
|
||||
|
||||
func set_gi_mode(p_gi_mode: GIMode) -> void:
|
||||
|
||||
@@ -124,7 +124,7 @@ transform = Transform3D(1.4, 0, 0, 0, 1, 0, 0, 0, 0.25, -0.681709, -0.108265, 25
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_1n5k1")
|
||||
|
||||
[node name="Camera" type="Camera3D" parent="."]
|
||||
transform = Transform3D(-0.997523, -0.00719588, 0.0699685, -8.94368e-09, 0.994753, 0.102305, -0.0703375, 0.102052, -0.992289, 11.7976, 1.49898, 9.54247)
|
||||
transform = Transform3D(-0.99752325, -0.0071959156, 0.069968455, -8.943681e-09, 0.99475306, 0.1023054, -0.07033751, 0.10205201, -0.9922893, 11.7976, 1.49898, 9.54247)
|
||||
script = ExtResource("6")
|
||||
|
||||
[node name="Box" type="MeshInstance3D" parent="Camera"]
|
||||
@@ -158,7 +158,7 @@ enable_shadows = true
|
||||
ambient_mode = 0
|
||||
|
||||
[node name="BlobShadow" type="Decal" parent="Camera/ReflectiveSphere"]
|
||||
transform = Transform3D(1, -1.37668e-14, 0, 1.33227e-15, 1, 1.42109e-14, 0, 0, 1, 0, -1, -1.90735e-06)
|
||||
transform = Transform3D(1, -1.3766786e-14, 0, 1.3322678e-15, 1, 1.5987212e-14, 0, -2.842171e-14, 1, 0, -1, -1.9073486e-06)
|
||||
size = Vector3(2.5, 4, 2.5)
|
||||
texture_albedo = SubResource("GradientTexture2D_uu8pf")
|
||||
albedo_mix = 0.9
|
||||
@@ -175,6 +175,19 @@ theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_constants/outline_size = 4
|
||||
text = "Global illumination: None (Fastest)"
|
||||
|
||||
[node name="FPS" type="Label" parent="."]
|
||||
anchors_preset = 1
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
offset_left = -164.0
|
||||
offset_top = 16.0
|
||||
offset_right = -16.0
|
||||
offset_bottom = 42.0
|
||||
grow_horizontal = 0
|
||||
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_constants/outline_size = 4
|
||||
text = "60 FPS (16.67 mspf)"
|
||||
|
||||
[node name="ReflectionProbeMode" type="Label" parent="."]
|
||||
offset_left = 16.0
|
||||
offset_top = 48.0
|
||||
|
||||
Reference in New Issue
Block a user