Improve style in many demos (#1263)

This commit is contained in:
Aaron Franke
2025-10-11 05:03:59 -07:00
committed by GitHub
parent 0ae09b7e5a
commit 520b4a7870
197 changed files with 904 additions and 766 deletions

View File

@@ -3,7 +3,7 @@ extends Control
## The 3D viewport's shrink factor. For instance, 1 is full resolution,
## 2 is half resolution and 4 is quarter resolution. Lower values look
## sharper but are slower to render.
var scale_factor := 1
var scale_factor: int = 1
var filter_mode := Viewport.SCALING_3D_MODE_BILINEAR
@@ -16,13 +16,13 @@ func _ready() -> void:
viewport.scaling_3d_mode = filter_mode
func _unhandled_input(event: InputEvent) -> void:
if event.is_action_pressed(&"cycle_viewport_resolution"):
func _unhandled_input(input_event: InputEvent) -> void:
if input_event.is_action_pressed(&"cycle_viewport_resolution"):
scale_factor = wrapi(scale_factor + 1, 1, 5)
viewport.scaling_3d_scale = 1.0 / scale_factor
scale_label.text = "Scale: %3.0f%%" % (100.0 / scale_factor)
if event.is_action_pressed(&"toggle_filtering"):
if input_event.is_action_pressed(&"toggle_filtering"):
filter_mode = wrapi(filter_mode + 1, Viewport.SCALING_3D_MODE_BILINEAR, Viewport.SCALING_3D_MODE_MAX) as Viewport.Scaling3DMode
viewport.scaling_3d_mode = filter_mode
filter_label.text = (

View File

@@ -21,7 +21,7 @@ extends Node3D
@export var max_separation := 20.0
@export var split_line_thickness := 3.0
@export var split_line_color := Color.BLACK
@export var adaptive_split_line_thickness := true
@export var adaptive_split_line_thickness: bool = true
@onready var player1: CharacterBody3D = $"../Player1"
@onready var player2: CharacterBody3D = $"../Player2"

View File

@@ -1,7 +1,8 @@
extends Node3D
## Used for checking if the mouse is inside the Area3D.
var is_mouse_inside := false
var is_mouse_inside: bool = false
## The last processed input touch/mouse event. Used to calculate relative movement.
var last_event_pos2D := Vector2()
@@ -13,6 +14,7 @@ var last_event_time := -1.0
@onready var node_quad: MeshInstance3D = $Quad
@onready var node_area: Area3D = $Quad/Area3D
func _ready() -> void:
node_area.mouse_entered.connect(_mouse_entered_area)
node_area.mouse_exited.connect(_mouse_exited_area)
@@ -40,17 +42,17 @@ func _mouse_exited_area() -> void:
is_mouse_inside = false
func _unhandled_input(event: InputEvent) -> void:
func _unhandled_input(input_event: InputEvent) -> void:
# Check if the event is a non-mouse/non-touch event
for mouse_event in [InputEventMouseButton, InputEventMouseMotion, InputEventScreenDrag, InputEventScreenTouch]:
if is_instance_of(event, mouse_event):
if is_instance_of(input_event, mouse_event):
# If the event is a mouse/touch event, then we can ignore it here, because it will be
# handled via Physics Picking.
return
node_viewport.push_input(event)
node_viewport.push_input(input_event)
func _mouse_input_event(_camera: Camera3D, event: InputEvent, event_position: Vector3, _normal: Vector3, _shape_idx: int) -> void:
func _mouse_input_event(_camera: Camera3D, input_event: InputEvent, event_position: Vector3, _normal: Vector3, _shape_idx: int) -> void:
# Get mesh size to detect edges and make conversions. This code only supports PlaneMesh and QuadMesh.
var quad_mesh_size: Vector2 = node_quad.mesh.size
@@ -90,20 +92,20 @@ func _mouse_input_event(_camera: Camera3D, event: InputEvent, event_position: Ve
event_pos2D = last_event_pos2D
# Set the event's position and global position.
event.position = event_pos2D
if event is InputEventMouse:
event.global_position = event_pos2D
input_event.position = event_pos2D
if input_event is InputEventMouse:
input_event.global_position = event_pos2D
# Calculate the relative event distance.
if event is InputEventMouseMotion or event is InputEventScreenDrag:
if input_event is InputEventMouseMotion or input_event is InputEventScreenDrag:
# If there is not a stored previous position, then we'll assume there is no relative motion.
if last_event_pos2D == null:
event.relative = Vector2(0, 0)
input_event.relative = Vector2(0, 0)
# If there is a stored previous position, then we'll calculate the relative position by subtracting
# the previous position from the new position. This will give us the distance the event traveled from prev_pos.
else:
event.relative = event_pos2D - last_event_pos2D
event.velocity = event.relative / (now - last_event_time)
input_event.relative = event_pos2D - last_event_pos2D
input_event.velocity = input_event.relative / (now - last_event_time)
# Update last_event_pos2D with the position we just calculated.
last_event_pos2D = event_pos2D
@@ -112,7 +114,7 @@ func _mouse_input_event(_camera: Camera3D, event: InputEvent, event_position: Ve
last_event_time = now
# Finally, send the processed input event to the viewport.
node_viewport.push_input(event)
node_viewport.push_input(input_event)
func rotate_area_to_billboard() -> void:

View File

@@ -1,6 +1,7 @@
## Player implementation.
class_name Player
extends CharacterBody2D
## Player implementation.
const factor: float = 200.0 # Factor to multiply the movement.
@@ -8,17 +9,17 @@ var _movement: Vector2 = Vector2(0, 0) # Current movement rate of node.
# Update movement variable based on input that reaches this SubViewport.
func _unhandled_input(event: InputEvent) -> void:
if event.is_action_pressed(&"ux_up") or event.is_action_released(&"ux_down"):
func _unhandled_input(input_event: InputEvent) -> void:
if input_event.is_action_pressed(&"ux_up") or input_event.is_action_released(&"ux_down"):
_movement.y -= 1
get_viewport().set_input_as_handled()
elif event.is_action_pressed(&"ux_down") or event.is_action_released(&"ux_up"):
elif input_event.is_action_pressed(&"ux_down") or input_event.is_action_released(&"ux_up"):
_movement.y += 1
get_viewport().set_input_as_handled()
elif event.is_action_pressed(&"ux_left") or event.is_action_released(&"ux_right"):
elif input_event.is_action_pressed(&"ux_left") or input_event.is_action_released(&"ux_right"):
_movement.x -= 1
get_viewport().set_input_as_handled()
elif event.is_action_pressed(&"ux_right") or event.is_action_released(&"ux_left"):
elif input_event.is_action_pressed(&"ux_right") or input_event.is_action_released(&"ux_left"):
_movement.x += 1
get_viewport().set_input_as_handled()