navigation and avoidance starting to work

This commit is contained in:
Adam Burns 2026-02-13 11:35:50 -05:00
parent 43659c1404
commit b525ffd024
4 changed files with 33 additions and 14 deletions

View File

@ -4,6 +4,10 @@
[ext_resource type="Texture2D" uid="uid://ctakygdw82fs2" path="res://assets/players/top-down/orange-45.png" id="2_onrkg"]
[ext_resource type="PackedScene" uid="uid://nbb3fdh08hbk" path="res://player_label.tscn" id="3_i3pqv"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_i3pqv"]
radius = 11.0
height = 46.0
[sub_resource type="Gradient" id="Gradient_i3pqv"]
offsets = PackedFloat32Array(0, 0.74882627)
colors = PackedColorArray(1, 1, 1, 0.5019608, 0, 0, 0, 0)
@ -15,20 +19,27 @@ fill_from = Vector2(0.5, 0.5)
[sub_resource type="Shortcut" id="Shortcut_hqtel"]
[node name="Player" type="Node2D" unique_id=1267043713]
[node name="Player" type="CharacterBody2D" unique_id=1353719775]
motion_mode = 1
script = ExtResource("1_onrkg")
[node name="PlayerSprite" type="Sprite2D" parent="." unique_id=1692351563]
texture_filter = 1
texture = ExtResource("2_onrkg")
[node name="PlayerCollider" type="CollisionShape2D" parent="." unique_id=1534226951]
position = Vector2(1, 0)
shape = SubResource("CapsuleShape2D_i3pqv")
debug_color = Color(0.23987567, 0.6988715, 0.40862384, 0.41960785)
[node name="PlayerCamera" type="Camera2D" parent="." unique_id=1839930911]
zoom = Vector2(1.5, 1.5)
editor_draw_screen = false
[node name="PlayerNav" type="NavigationAgent2D" parent="." unique_id=1205813043]
avoidance_enabled = true
radius = 50.0
radius = 25.0
max_speed = 100000.0
debug_enabled = true
[node name="NavTarget" type="Sprite2D" parent="." unique_id=1224616450]

View File

@ -1,7 +1,7 @@
@icon("res://assets/icons/player.svg")
#@tool
class_name Player
extends Node2D
extends CharacterBody2D
## signals
signal turn_finished
@ -44,10 +44,12 @@ func _process(_delta: float) -> void:
nav_target.global_position = get_global_mouse_position()
func _physics_process(delta: float) -> void:
if player_nav.target_position:
player_nav.velocity = global_position.direction_to(player_nav.get_next_path_position())
#var movement_direction =
#translate(movement_direction)
var desired_velocity: Vector2 = global_position.direction_to(player_nav.get_next_path_position()) * attributes.speed ## TODO: this doesn't seem to affect actual movement speed
player_nav.velocity = desired_velocity
#if player_nav.target_position:
#player_nav.velocity = global_position.direction_to(player_nav.get_next_path_position())
##var movement_direction =
##translate(movement_direction)
func _input(event: InputEvent) -> void:
if event.is_action_pressed("end_turn"):
@ -86,4 +88,5 @@ func end_turn() -> void:
turn_finished.emit()
func on_velocity_computed(safe_velocity: Vector2) -> void:
translate(safe_velocity)
velocity = safe_velocity
move_and_slide()

View File

@ -19,7 +19,7 @@ script = ExtResource("5_bwj7y")
player_texture = ExtResource("4_21h5f")
player_name = "Stevie"
player_number = 14
speed = 120.0
speed = 250.0
reflexes = 5.0
metadata/_custom_type_script = "uid://bbey5ttwv5utd"
@ -29,7 +29,7 @@ player_texture = ExtResource("6_21h5f")
player_name = "Brendan"
player_number = 9
player_position = 1
speed = 80.0
speed = 170.0
reflexes = 3.0
metadata/_custom_type_script = "uid://bbey5ttwv5utd"
@ -39,7 +39,7 @@ player_texture = ExtResource("7_bwj7y")
player_name = "Big Country"
player_number = 50
player_position = 2
speed = 50.0
speed = 100.0
reflexes = 1.0
metadata/_custom_type_script = "uid://bbey5ttwv5utd"

View File

@ -19,7 +19,7 @@ script = ExtResource("5_ssmnd")
player_texture = ExtResource("4_dbbjc")
player_name = "Dave"
player_number = 11
speed = 100.0
speed = 400.0
reflexes = 5.0
metadata/_custom_type_script = "uid://bbey5ttwv5utd"
@ -29,7 +29,7 @@ player_texture = ExtResource("6_dbbjc")
player_name = "Matt"
player_number = 13
player_position = 1
speed = 70.0
speed = 150.0
reflexes = 3.0
metadata/_custom_type_script = "uid://bbey5ttwv5utd"
@ -39,7 +39,7 @@ player_texture = ExtResource("7_ssmnd")
player_name = "Orville"
player_number = 33
player_position = 2
speed = 85.0
speed = 175.0
reflexes = 4.0
metadata/_custom_type_script = "uid://bbey5ttwv5utd"
@ -50,6 +50,9 @@ attributes = SubResource("Resource_hms1j")
position = Vector2(6284.951, 0)
attributes = SubResource("Resource_jsul0")
[node name="PlayerNav" parent="Orange1" index="3" unique_id=1205813043]
debug_use_custom = true
[node name="Orange2" parent="." index="1" unique_id=1623179654 instance=ExtResource("3_oxqyn")]
position = Vector2(3503.8748, 0)
attributes = SubResource("Resource_ufsyq")
@ -57,3 +60,5 @@ attributes = SubResource("Resource_ufsyq")
[node name="Orange3" parent="." index="2" unique_id=964363928 instance=ExtResource("3_oxqyn")]
position = Vector2(4278.757, 0)
attributes = SubResource("Resource_nbn31")
[editable path="Orange1"]