add train control game
This commit is contained in:
31
scripts/train_movement.gd
Normal file
31
scripts/train_movement.gd
Normal 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
|
||||
Reference in New Issue
Block a user