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