Godot gestionează controlul jucătorului printr-un strat de abstractizare numit Input Map (configurat în Project Settings → Input Map). În loc să verificați taste specifice hardware (cum ar fi tasta ‘W’), verificați acțiuni logice (cum ar fi acțiunea "miscare_sus"), permițând comutarea automată între tastatură, mouse, ecran tactil și gamepad.
Citirea direcției omnidirecționale cu Input.get_vector()
extends CharacterBody2D
@export var viteza: float = 200.0
func _physics_process(_delta: float) -> void:
# get_vector returnează un Vector2 deja normalizat matematic!
# Previne deplasarea mai rapidă pe diagonală (viteza pe diagonală rămâne exact 1.0):
var directie := Input.get_vector("miscare_stanga", "miscare_dreapta", "miscare_sus", "miscare_jos")
velocity = directie * viteza
move_and_slide()
# Tratarea evenimentelor discrete (apăsare o singură dată a unei taste de meniu):
func _unhandled_input(event: InputEvent) -> void:
if event.is_action_pressed("meniu_pauza"):
deschide_meniu_pauza()