add train control game

This commit is contained in:
Overside srl
2026-01-27 19:11:56 +01:00
parent 2af450ffc5
commit 8222c7613d
238 changed files with 1778 additions and 476 deletions

31
scripts/train_movement.gd Normal file
View File

@@ -0,0 +1,31 @@
extends MeshInstance3D
signal speed_changed(new_speed: float)
@export_group("Train")
@export var base_speed: float = 15.0
@export var max_speed: float = 50.0
@export var min_speed: float = 3.0
@export var acceleration: float = 12.0
var current_speed: float = 15.0
func _ready() -> void:
current_speed = base_speed
func _process(delta: float) -> void:
_handle_input(delta)
func _handle_input(delta: float) -> void:
if Input.is_action_pressed("speed_up"):
current_speed = min(current_speed + acceleration * delta, max_speed)
speed_changed.emit(current_speed)
elif Input.is_action_pressed("speed_down"):
current_speed = max(current_speed - acceleration * delta, min_speed)
speed_changed.emit(current_speed)
func get_speed() -> float:
return current_speed