Gestionarea Input-ului în Godot 4: Input.get_vector(), is_action_pressed și _unhandled_input în GDScript (Godot Engine)

Input & Control Godot 4.x

Ghid complet pentru input în Godot 4: maparea acțiunilor în Input Map, obținerea direcției 2D normalizate cu get_vector(), tratarea evenimentelor singulare și pauză.

Sintaxă
var directie = Input.get_vector("stanga", "dreapta", "sus", "jos")

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()