From db07777fcae167a99949620ae623ac6ec79f8359 Mon Sep 17 00:00:00 2001 From: derek Date: Thu, 1 May 2025 16:49:22 -0500 Subject: [PATCH] more tweaks, not perfect but way better than before --- assets/spider2.tscn | 1 - project.godot | 2 +- scripts/EnemyIdle.gd | 2 +- scripts/EnemySearch.gd | 2 +- scripts/EnemyStates.gd | 13 ++++++++----- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/assets/spider2.tscn b/assets/spider2.tscn index 481e366..f135620 100644 --- a/assets/spider2.tscn +++ b/assets/spider2.tscn @@ -851,7 +851,6 @@ collision_layer = 8 collision_mask = 521 up_direction = Vector3(0.0449994, 0.998987, 0) script = ExtResource("1_7e7fe") -debug_tools = true nav_agent = NodePath("NavigationAgent3D") hit_targets = [NodePath("body/backTarget")] visibility_areas = [NodePath("VisibilityArea")] diff --git a/project.godot b/project.godot index 2ea5981..f2b8dd6 100644 --- a/project.godot +++ b/project.godot @@ -12,7 +12,7 @@ config_version=5 config/name="First Person Test" config/tags=PackedStringArray("fps") -run/main_scene="uid://cfaydhd6u5bmb" +run/main_scene="uid://f7e0v1r6ra6c" config/features=PackedStringArray("4.4", "Forward Plus") config/icon="uid://6svuq1l83al5" diff --git a/scripts/EnemyIdle.gd b/scripts/EnemyIdle.gd index 6dfb68a..ede447e 100644 --- a/scripts/EnemyIdle.gd +++ b/scripts/EnemyIdle.gd @@ -31,7 +31,7 @@ func Physics_Update(delta): move_to_nav_point(delta) #do turret scan - turret_scan_look(enemy.nav_agent.get_next_path_position(),scan_direction,delta) + turret_scan(Vector3(0,scan_direction,0),delta) func get_new_wander_point(): var x = randf_range(-wander_distance_max,wander_distance_max) diff --git a/scripts/EnemySearch.gd b/scripts/EnemySearch.gd index 6de4c6c..25e789f 100644 --- a/scripts/EnemySearch.gd +++ b/scripts/EnemySearch.gd @@ -29,7 +29,7 @@ func Physics_Update(delta): move_to_nav_point(delta) #do turret scan - turret_look3D(delta) + turret_scan(Vector3(0,scan_direction,0),delta) func get_new_point_of_interest(): if enemy.player_last_seen != null and enemy.player_last_seen != move_target: diff --git a/scripts/EnemyStates.gd b/scripts/EnemyStates.gd index 6a59037..d13534d 100644 --- a/scripts/EnemyStates.gd +++ b/scripts/EnemyStates.gd @@ -65,7 +65,7 @@ func rotate_to_face2D(object,target,target_offset_angle,delta,turn_speed): var direction = (pos2d - target_pos2d) return lerp_angle(object.global_rotation.y,atan2(direction.x,direction.y) + deg_to_rad(target_offset_angle),delta * turn_speed) -func rotate_to_face3D(object,target,delta,turn_speed): +func rotate_to_face3D(object : Node3D,target,target_offset_angle : Vector3,delta : float,turn_speed : float): if target == null: return @@ -80,9 +80,9 @@ func rotate_to_face3D(object,target,delta,turn_speed): var current_rotation = object.global_rotation #Interpolate each axis - current_rotation.x = lerp_angle(current_rotation.x,desired_rotation.x,delta * turn_speed) - current_rotation.y = lerp_angle(current_rotation.y,desired_rotation.y,delta * turn_speed) - current_rotation.z = lerp_angle(current_rotation.z,desired_rotation.z,delta * turn_speed) + current_rotation.x = lerp_angle(current_rotation.x,desired_rotation.x + target_offset_angle.x,delta * turn_speed) + current_rotation.y = lerp_angle(current_rotation.y,desired_rotation.y + target_offset_angle.y,delta * turn_speed) + current_rotation.z = lerp_angle(current_rotation.z,desired_rotation.z + target_offset_angle.z,delta * turn_speed) #clamp pitch var max_downward_pitch = deg_to_rad(85) @@ -106,8 +106,11 @@ func velocity_computed(safe_velocity): func turret_look2D(delta): enemy.turret_look.global_rotation.y = rotate_to_face2D(enemy.turret_look,look_target,0,delta,turret_speed) +func turret_scan(target_offset : Vector3,delta): + rotate_to_face3D(enemy.turret_look,look_target,target_offset,delta,turret_speed) + func turret_look3D(delta): - rotate_to_face3D(enemy.turret_look,look_target,delta,turret_speed) + rotate_to_face3D(enemy.turret_look,look_target,Vector3.ZERO,delta,turret_speed) func turret_scan_look(target,scan_direction,delta): enemy.turret_look.global_rotation.y = rotate_to_face2D(enemy.turret_look,target,scan_direction,delta,turret_speed)