From f933ad85f139857458680c832f836f4fb9bf185e Mon Sep 17 00:00:00 2001 From: Haze Weathers Date: Sat, 1 Nov 2025 21:29:31 -0600 Subject: [PATCH] frab moves! --- objects/enemies/frab/frab.gd | 19 +++++++++++++++++ objects/enemies/frab/frab.gd.uid | 1 + objects/enemies/frab/frab.tscn | 35 +++++++++++++++++--------------- test_scene.tscn | 20 ++++++++++++++++-- 4 files changed, 57 insertions(+), 18 deletions(-) create mode 100644 objects/enemies/frab/frab.gd create mode 100644 objects/enemies/frab/frab.gd.uid diff --git a/objects/enemies/frab/frab.gd b/objects/enemies/frab/frab.gd new file mode 100644 index 0000000..b4d9f85 --- /dev/null +++ b/objects/enemies/frab/frab.gd @@ -0,0 +1,19 @@ +extends Enemy + + +@export var wander_range: float +@export var max_home_distance: float + + +@onready var _target_pos: Vector2 = global_position +@onready var _home_pos: Vector2 = global_position + + +func _physics_process(delta: float) -> void: + if (global_position - _target_pos).length() < 2.0: + _target_pos = Vector2.INF + while _home_pos.distance_to(_target_pos) > max_home_distance: + _target_pos = global_position + (Vector2.RIGHT * randf() * wander_range).rotated(randf() * TAU) + #global_position = global_position.move_toward(_target_pos, move_speed * delta) + global_position += (global_position.direction_to(_target_pos)) * move_speed * delta + print(_target_pos) diff --git a/objects/enemies/frab/frab.gd.uid b/objects/enemies/frab/frab.gd.uid new file mode 100644 index 0000000..ec6229e --- /dev/null +++ b/objects/enemies/frab/frab.gd.uid @@ -0,0 +1 @@ +uid://botgy5lnepotc diff --git a/objects/enemies/frab/frab.tscn b/objects/enemies/frab/frab.tscn index 5171db7..f5d0bdb 100644 --- a/objects/enemies/frab/frab.tscn +++ b/objects/enemies/frab/frab.tscn @@ -1,7 +1,22 @@ [gd_scene load_steps=6 format=3 uid="uid://o273v7ll6m0h"] [ext_resource type="Texture2D" uid="uid://orvwbw12311i" path="res://assets/graphics/frab.png" id="1_px4ud"] -[ext_resource type="Script" uid="uid://d2k5tlvpqokqr" path="res://objects/enemies/enemy.gd" id="1_r8e57"] +[ext_resource type="Script" uid="uid://botgy5lnepotc" path="res://objects/enemies/frab/frab.gd" id="1_r8e57"] + +[sub_resource type="Animation" id="Animation_lvd4h"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:flip_h") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} [sub_resource type="Animation" id="Animation_r8e57"] resource_name = "flab" @@ -21,21 +36,6 @@ tracks/0/keys = { "values": [false, true] } -[sub_resource type="Animation" id="Animation_lvd4h"] -length = 0.001 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Sprite2D:flip_h") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [false] -} - [sub_resource type="AnimationLibrary" id="AnimationLibrary_qb3yn"] _data = { &"RESET": SubResource("Animation_lvd4h"), @@ -44,6 +44,9 @@ _data = { [node name="Frab" type="Node2D"] script = ExtResource("1_r8e57") +wander_range = 100.0 +max_home_distance = 200.0 +move_speed = 100.0 metadata/_custom_type_script = "uid://d2k5tlvpqokqr" [node name="Sprite2D" type="Sprite2D" parent="."] diff --git a/test_scene.tscn b/test_scene.tscn index 0d532c9..1ba566d 100644 --- a/test_scene.tscn +++ b/test_scene.tscn @@ -1,7 +1,11 @@ -[gd_scene load_steps=3 format=3 uid="uid://bnjujh22nqr4a"] +[gd_scene load_steps=7 format=3 uid="uid://bnjujh22nqr4a"] [ext_resource type="Texture2D" uid="uid://diymfwm64gae8" path="res://icon.svg" id="1_uhqqe"] [ext_resource type="PackedScene" uid="uid://djpowg53xsgux" path="res://objects/player/player.tscn" id="2_ia1lp"] +[ext_resource type="PackedScene" uid="uid://o273v7ll6m0h" path="res://objects/enemies/frab/frab.tscn" id="3_7cbxl"] +[ext_resource type="PackedScene" uid="uid://cbjv7fecdoet5" path="res://objects/enemies/belough/belough.tscn" id="4_8pr8v"] +[ext_resource type="PackedScene" uid="uid://cyn42vceeg8n3" path="res://objects/enemies/kith/kith.tscn" id="5_buypi"] +[ext_resource type="PackedScene" uid="uid://dfrj00ro4rm5l" path="res://objects/enemies/spitting_fiend/spitting_fiend.tscn" id="6_njel3"] [node name="TestScene" type="Node2D"] @@ -15,4 +19,16 @@ texture = ExtResource("1_uhqqe") [node name="Player" parent="." instance=ExtResource("2_ia1lp")] position = Vector2(115, 93) -walk_speed = 100.0 + +[node name="Frab" parent="." instance=ExtResource("3_7cbxl")] +position = Vector2(170, 129) +max_home_distance = 100.0 + +[node name="Belough" parent="." instance=ExtResource("4_8pr8v")] +position = Vector2(67, 175) + +[node name="Kith" parent="." instance=ExtResource("5_buypi")] +position = Vector2(174, 219) + +[node name="SpittingFiend" parent="." instance=ExtResource("6_njel3")] +position = Vector2(280, 175)