Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extends CharacterBody2D
- @export var player : CharacterBody2D
- #@onready var player = $player
- @onready var navigation_agent_2d: NavigationAgent2D = $NavigationAgent2D
- var movement_speed = 200
- # Called when the node enters the scene tree for the first time.
- func _ready() -> void:
- pass # Replace with function body.
- # Called every frame. 'delta' is the elapsed time since the previous frame.
- func _process(_delta: float) -> void:
- pass
- func _physics_process(_delta: float) -> void:
- var playerPos = player.global_position
- navigation_agent_2d.target_position = playerPos
- var current_agent_position = global_position
- var next_path_position = navigation_agent_2d.get_next_path_position()
- var new_velocity = current_agent_position.direction_to(next_path_position) * movement_speed
- #navigation has ended
- if navigation_agent_2d.is_navigation_finished():
- return
- if navigation_agent_2d.avoidance_enabled:
- navigation_agent_2d.set_velocity(new_velocity)
- else:
- _on_navigation_agent_2d_velocity_computed(new_velocity)
- move_and_slide()
- func _on_navigation_agent_2d_velocity_computed(safe_velocity: Vector2) -> void:
- velocity = safe_velocity
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement