Navigație și Pathfinding 2D în Godot 4: Nodul NavigationAgent2D și A* în GDScript (Godot Engine)

Ghid complet pentru inteligența artificială a inamicilor în Godot 4: căutarea automată a căilor cu NavigationAgent2D, urmărirea jucătorului și evitarea obstacolelor (Avoidance).

Sintaxă
$NavigationAgent2D.target_position = tinta; var urmatorul = get_next_path_position()

Sistemul de navigație din Godot 4 folosește poligoane de navigație (NavigationPolygon) și algoritmul A* optimizat pe GPU/CPU pentru calculul căilor optime. Nodul NavigationAgent2D este atașat inamicilor pentru a calcula traiectoriile către țintă ocolind pereții și obstacolele dinamice.

Script complet de inamic care urmărește jucătorul cu NavigationAgent2D
extends CharacterBody2D

@export var viteza: float = 180.0
@export var tinta: Node2D

@onready var agent_nav: NavigationAgent2D = $NavigationAgent2D

func _ready() -> void:
    # Așteptăm primul cadru fizic pentru sincronizarea hărții de navigație:
    await get_tree().physics_frame

func _physics_process(delta: float) -> void:
    if tinta:
        # Actualizăm poziția jucătorului ca destinație:
        agent_nav.target_position = tinta.global_position

    # Dacă inamicul a ajuns deja la destinație, ne oprim:
    if agent_nav.is_navigation_finished():
        velocity = Vector2.ZERO
        move_and_slide()
        return

    # Preluăm următorul punct intermediar calculat de algoritmul de navigație:
    var punct_urmator: Vector2 = agent_nav.get_next_path_position()
    var directie: Vector2 = (punct_urmator - global_position).normalized()

    velocity = directie * viteza
    move_and_slide()
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Navigație și Pathfinding 2D în Godot 4: Nodul NavigationAgent2D și A*

Ai o nelămurire despre utilizarea comenzii Navigație și Pathfinding 2D în Godot 4: Nodul NavigationAgent2D și A* sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.