From 0d9fa06557d954971f3c4092b55db688448ba4ff Mon Sep 17 00:00:00 2001 From: Renarde-dev Date: Fri, 24 Jan 2025 18:38:25 +0100 Subject: [PATCH] Slime with tracking --- ressources/images/blob-1.png.png.import | 34 ++++++++++++++ ressources/images/blob-2-4.png.png.import | 34 ++++++++++++++ ressources/images/blob-3.png.png.import | 34 ++++++++++++++ scenes/Room.tscn | 6 ++- scenes/enemies/slime.gd | 34 ++++++++++++++ scenes/enemies/slime.tscn | 54 +++++++++++++++++++++++ 6 files changed, 195 insertions(+), 1 deletion(-) create mode 100644 ressources/images/blob-1.png.png.import create mode 100644 ressources/images/blob-2-4.png.png.import create mode 100644 ressources/images/blob-3.png.png.import create mode 100644 scenes/enemies/slime.gd create mode 100644 scenes/enemies/slime.tscn diff --git a/ressources/images/blob-1.png.png.import b/ressources/images/blob-1.png.png.import new file mode 100644 index 0000000..4bf25f6 --- /dev/null +++ b/ressources/images/blob-1.png.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://devrwnq1oj3qv" +path="res://.godot/imported/blob-1.png.png-d6117acd2391c64f472af8433c684912.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ressources/images/blob-1.png.png" +dest_files=["res://.godot/imported/blob-1.png.png-d6117acd2391c64f472af8433c684912.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/ressources/images/blob-2-4.png.png.import b/ressources/images/blob-2-4.png.png.import new file mode 100644 index 0000000..358543f --- /dev/null +++ b/ressources/images/blob-2-4.png.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b0cua5ecp7bfw" +path="res://.godot/imported/blob-2-4.png.png-808d98b15f20529346c9c4c50162a975.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ressources/images/blob-2-4.png.png" +dest_files=["res://.godot/imported/blob-2-4.png.png-808d98b15f20529346c9c4c50162a975.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/ressources/images/blob-3.png.png.import b/ressources/images/blob-3.png.png.import new file mode 100644 index 0000000..1f6a0cc --- /dev/null +++ b/ressources/images/blob-3.png.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cc1kqgdbwm1dh" +path="res://.godot/imported/blob-3.png.png-902563b57bcfa6ab9c15d19bab7245bc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ressources/images/blob-3.png.png" +dest_files=["res://.godot/imported/blob-3.png.png-902563b57bcfa6ab9c15d19bab7245bc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/scenes/Room.tscn b/scenes/Room.tscn index 5f29738..f4e6aa0 100644 --- a/scenes/Room.tscn +++ b/scenes/Room.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=7 format=3 uid="uid://durhes43gex7a"] +[gd_scene load_steps=8 format=3 uid="uid://durhes43gex7a"] [ext_resource type="PackedScene" uid="uid://c7bfiw54rvaq2" path="res://scenes/player_melodie.tscn" id="1_cl1wt"] [ext_resource type="Texture2D" uid="uid://ky4e7158gqf6" path="res://ressources/images/cgj_default_tile.svg" id="2_torsx"] +[ext_resource type="PackedScene" uid="uid://cyvqa6g64cw37" path="res://scenes/enemies/slime.tscn" id="3_04ip2"] [sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_1c4te"] normal = Vector2(0, 1) @@ -48,3 +49,6 @@ shape = SubResource("WorldBoundaryShape2D_ia1hi") [node name="CanvasLayer" type="CanvasLayer" parent="."] [node name="Camera2D" type="Camera2D" parent="CanvasLayer"] + +[node name="Slime" parent="." instance=ExtResource("3_04ip2")] +position = Vector2(-448, 205) diff --git a/scenes/enemies/slime.gd b/scenes/enemies/slime.gd new file mode 100644 index 0000000..6f42d06 --- /dev/null +++ b/scenes/enemies/slime.gd @@ -0,0 +1,34 @@ +extends CharacterBody2D + + +const SPEED = 100.0 +var old_pos = Vector2.ZERO +@onready var player = get_parent().get_node("Player_Melodie") +var player_position = Vector2.ZERO +var target_position = Vector2.ZERO + +var move_timer = 2 + + +func _physics_process(delta: float) -> void: + player_position = player.position + target_position = (player_position - position).normalized() + move_and_slide() + for i in get_slide_collision_count(): + var collision = get_slide_collision(i) + print("Collided with: ", collision.get_collider().name) + +func _process(delta: float) -> void: + var direction : Vector2 + if move_timer > 0 : + move_timer -= delta + direction = Vector2.ZERO + else : + direction = target_position + + if old_pos == position : + $AnimatedSprite2D.play("idle") + else : + $AnimatedSprite2D.play("walk_down") + + velocity = direction * SPEED diff --git a/scenes/enemies/slime.tscn b/scenes/enemies/slime.tscn new file mode 100644 index 0000000..7f074c1 --- /dev/null +++ b/scenes/enemies/slime.tscn @@ -0,0 +1,54 @@ +[gd_scene load_steps=7 format=3 uid="uid://cyvqa6g64cw37"] + +[ext_resource type="Script" path="res://scenes/enemies/slime.gd" id="1_hnufy"] +[ext_resource type="Texture2D" uid="uid://devrwnq1oj3qv" path="res://ressources/images/blob-1.png.png" id="1_n4mgf"] +[ext_resource type="Texture2D" uid="uid://b0cua5ecp7bfw" path="res://ressources/images/blob-2-4.png.png" id="2_w8gqg"] +[ext_resource type="Texture2D" uid="uid://cc1kqgdbwm1dh" path="res://ressources/images/blob-3.png.png" id="3_pwpfc"] + +[sub_resource type="SpriteFrames" id="SpriteFrames_qfla8"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_n4mgf") +}, { +"duration": 1.0, +"texture": ExtResource("2_w8gqg") +}], +"loop": false, +"name": &"idle", +"speed": 3.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_n4mgf") +}, { +"duration": 1.0, +"texture": ExtResource("2_w8gqg") +}, { +"duration": 1.0, +"texture": ExtResource("3_pwpfc") +}, { +"duration": 1.0, +"texture": ExtResource("2_w8gqg") +}], +"loop": true, +"name": &"walk_down", +"speed": 3.0 +}] + +[sub_resource type="CircleShape2D" id="CircleShape2D_bokrm"] +radius = 20.0 + +[node name="Slime" type="CharacterBody2D"] +script = ExtResource("1_hnufy") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +position = Vector2(-3, 12) +sprite_frames = SubResource("SpriteFrames_qfla8") +animation = &"idle" +frame = 1 +frame_progress = 1.0 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_bokrm") +disabled = true