From 9850fffb8044c18fa66942a5277ae243af9c5b71 Mon Sep 17 00:00:00 2001 From: Sara Date: Fri, 22 Mar 2024 15:34:53 +0100 Subject: [PATCH] fix: player character now actually stops --- src/player_character.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/player_character.cpp b/src/player_character.cpp index cfff094..520c844 100644 --- a/src/player_character.cpp +++ b/src/player_character.cpp @@ -107,9 +107,9 @@ Vector3 PlayerCharacter::get_velocity_target() const { } void PlayerCharacter::process_ai(double delta_time) { - if(this->nav_agent->is_navigation_finished()) { - this->move(Vector3()); - } else { + float const distance = this->nav_agent->get_target_position().distance_squared_to(this->get_global_position()); + float const target_distance_sqr = std::pow(this->nav_agent->get_target_desired_distance(), 2.f); + if(!this->nav_agent->is_navigation_finished() && distance >= target_distance_sqr) { Vector3 const target_position = this->nav_agent->get_next_path_position(); Vector3 const direction = (target_position - this->get_global_position()).normalized(); this->move(direction);