From b5a9a54f94c1d1895870300d131b1eb77d37265a Mon Sep 17 00:00:00 2001 From: Elouan Date: Fri, 24 Jan 2025 18:45:09 +0100 Subject: [PATCH 1/4] Init Tambour --- menu_principal/menu_principal_affichage.tscn | 1 - project.godot | 5 ++ 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 ++++++++++++ .../images/ronde tambour.png.png.import | 34 ++++++++++++ ressources/images/ronde-tambour.png.import | 34 ++++++++++++ scenes/attaques/{Balle.tscn => Balle1.tscn} | 8 +-- scenes/attaques/Balle2.tscn | 16 ++++++ scenes/attaques/Balle3.tscn | 16 ++++++ scenes/attaques/Onde.tscn | 19 +++++++ scripts/Instrument/Flute.gd | 54 ++++++++++++++++--- scripts/Instrument/Tambour.gd | 54 ++++++++++++++++++- scripts/Instrument/onde.gd | 20 +++++++ scripts/player_control.gd | 28 +++++++--- 15 files changed, 370 insertions(+), 21 deletions(-) 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 ressources/images/ronde tambour.png.png.import create mode 100644 ressources/images/ronde-tambour.png.import rename scenes/attaques/{Balle.tscn => Balle1.tscn} (78%) create mode 100644 scenes/attaques/Balle2.tscn create mode 100644 scenes/attaques/Balle3.tscn create mode 100644 scenes/attaques/Onde.tscn create mode 100644 scripts/Instrument/onde.gd diff --git a/menu_principal/menu_principal_affichage.tscn b/menu_principal/menu_principal_affichage.tscn index 04c0b12..5f96e20 100644 --- a/menu_principal/menu_principal_affichage.tscn +++ b/menu_principal/menu_principal_affichage.tscn @@ -202,7 +202,6 @@ layout_mode = 1 [node name="MusiqueFond" type="AudioStreamPlayer" parent="."] stream = ExtResource("8_sq6yk") autoplay = true -bus = &"Music" [connection signal="pressed" from="Menu_principal/HBoxContainer/VBoxMainButton/play_button" to="." method="_on_play_button_pressed"] [connection signal="pressed" from="Menu_principal/HBoxContainer/VBoxMainButton/load_button" to="." method="_on_load_button_pressed"] diff --git a/project.godot b/project.godot index 09e5c56..5aeb0e2 100644 --- a/project.godot +++ b/project.godot @@ -72,6 +72,11 @@ JOUER_MUSIQUE_GAUCHE={ "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } +CHANGER_SLOT={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} [rendering] diff --git a/ressources/images/blob-1.png.png.import b/ressources/images/blob-1.png.png.import new file mode 100644 index 0000000..f1475ed --- /dev/null +++ b/ressources/images/blob-1.png.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dchan5vdmu4n0" +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..47ff61c --- /dev/null +++ b/ressources/images/blob-2-4.png.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bllbd2jxgi270" +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..a85f072 --- /dev/null +++ b/ressources/images/blob-3.png.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://32dcs4rylimt" +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/ressources/images/ronde tambour.png.png.import b/ressources/images/ronde tambour.png.png.import new file mode 100644 index 0000000..59e2a39 --- /dev/null +++ b/ressources/images/ronde tambour.png.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bq2gg8sxvwth2" +path="res://.godot/imported/ronde tambour.png.png-8204fac6218763c8b21d53d07c48f5f9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ressources/images/ronde tambour.png.png" +dest_files=["res://.godot/imported/ronde tambour.png.png-8204fac6218763c8b21d53d07c48f5f9.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/ronde-tambour.png.import b/ressources/images/ronde-tambour.png.import new file mode 100644 index 0000000..d36c3cc --- /dev/null +++ b/ressources/images/ronde-tambour.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://h0y356ur32vi" +path="res://.godot/imported/ronde-tambour.png-ee4e4d2b4e71a4aef719ad8901b83c4c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ressources/images/ronde-tambour.png" +dest_files=["res://.godot/imported/ronde-tambour.png-ee4e4d2b4e71a4aef719ad8901b83c4c.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/attaques/Balle.tscn b/scenes/attaques/Balle1.tscn similarity index 78% rename from scenes/attaques/Balle.tscn rename to scenes/attaques/Balle1.tscn index c50992c..473cd8f 100644 --- a/scenes/attaques/Balle.tscn +++ b/scenes/attaques/Balle1.tscn @@ -1,15 +1,15 @@ [gd_scene load_steps=3 format=3 uid="uid://btpp8l4efhrmj"] -[ext_resource type="Script" path="res://scripts/Instrument/balle.gd" id="1_4kd3w"] -[ext_resource type="Texture2D" uid="uid://csbrejwjfkspr" path="res://ressources/images/note1.png" id="1_qx664"] +[ext_resource type="Script" path="res://scripts/Instrument/balle.gd" id="1_mw8yb"] +[ext_resource type="Texture2D" uid="uid://csbrejwjfkspr" path="res://ressources/images/note1.png" id="2_xpv2h"] [node name="Balle1" type="CharacterBody2D" node_paths=PackedStringArray("raycast")] -script = ExtResource("1_4kd3w") +script = ExtResource("1_mw8yb") raycast = NodePath("RayCast2D") [node name="Sprite2D" type="Sprite2D" parent="."] rotation = 3.14159 -texture = ExtResource("1_qx664") +texture = ExtResource("2_xpv2h") [node name="RayCast2D" type="RayCast2D" parent="."] position = Vector2(0, -7) diff --git a/scenes/attaques/Balle2.tscn b/scenes/attaques/Balle2.tscn new file mode 100644 index 0000000..959f982 --- /dev/null +++ b/scenes/attaques/Balle2.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=3 format=3 uid="uid://crpjmum8m2m1b"] + +[ext_resource type="Script" path="res://scripts/Instrument/balle.gd" id="1_gf62f"] +[ext_resource type="Texture2D" uid="uid://1xayae6jyuge" path="res://ressources/images/note2.png" id="2_5005k"] + +[node name="Balle1" type="CharacterBody2D" node_paths=PackedStringArray("raycast")] +script = ExtResource("1_gf62f") +raycast = NodePath("RayCast2D") + +[node name="Sprite2D" type="Sprite2D" parent="."] +rotation = 3.14159 +texture = ExtResource("2_5005k") + +[node name="RayCast2D" type="RayCast2D" parent="."] +position = Vector2(0, -7) +target_position = Vector2(0, 15) diff --git a/scenes/attaques/Balle3.tscn b/scenes/attaques/Balle3.tscn new file mode 100644 index 0000000..c825cf4 --- /dev/null +++ b/scenes/attaques/Balle3.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=3 format=3 uid="uid://j4j8mg7jhuwy"] + +[ext_resource type="Script" path="res://scripts/Instrument/balle.gd" id="1_7dxcl"] +[ext_resource type="Texture2D" uid="uid://cq5j2fb07d7f8" path="res://ressources/images/notes3.svg" id="2_gx4yt"] + +[node name="Balle1" type="CharacterBody2D" node_paths=PackedStringArray("raycast")] +script = ExtResource("1_7dxcl") +raycast = NodePath("RayCast2D") + +[node name="Sprite2D" type="Sprite2D" parent="."] +rotation = 3.14159 +texture = ExtResource("2_gx4yt") + +[node name="RayCast2D" type="RayCast2D" parent="."] +position = Vector2(0, -7) +target_position = Vector2(0, 15) diff --git a/scenes/attaques/Onde.tscn b/scenes/attaques/Onde.tscn new file mode 100644 index 0000000..fe2c8be --- /dev/null +++ b/scenes/attaques/Onde.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=4 format=3 uid="uid://y2j5qtyg4vt3"] + +[ext_resource type="Script" path="res://scripts/Instrument/onde.gd" id="1_6377h"] +[ext_resource type="Texture2D" uid="uid://bq2gg8sxvwth2" path="res://ressources/images/ronde tambour.png.png" id="1_oawub"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_r81ru"] +radius = 125.575 + +[node name="Onde" type="CharacterBody2D"] +collision_layer = 2 +collision_mask = 2 +script = ExtResource("1_6377h") + +[node name="Sprite2D" type="Sprite2D" parent="."] +scale = Vector2(2.5, 2.5) +texture = ExtResource("1_oawub") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_r81ru") diff --git a/scripts/Instrument/Flute.gd b/scripts/Instrument/Flute.gd index fcd6de6..f7d41c1 100644 --- a/scripts/Instrument/Flute.gd +++ b/scripts/Instrument/Flute.gd @@ -1,28 +1,66 @@ class_name Flute var scene_node = null +var balle_scenes = [ + preload("res://scenes/attaques/Balle1.tscn"), + preload("res://scenes/attaques/Balle2.tscn"), + preload("res://scenes/attaques/Balle3.tscn") +] +var current_balle_index = 0 + +@export var cooldown = 0.15 # Durée du cooldown en secondes +var is_on_cooldown = false # Indique si le cooldown est en cours func set_scene_parent(node: Node) -> void: scene_node = node + # Si scene_node est défini pour la première fois, on ajoute un Timer + if not scene_node.has_node("TirCooldownTimer"): + var cooldown_timer = Timer.new() + cooldown_timer.name = "TirCooldownTimer" + cooldown_timer.one_shot = true + cooldown_timer.wait_time = cooldown + cooldown_timer.connect("timeout", Callable(self, "_on_cooldown_timeout")) + scene_node.add_child(cooldown_timer) - -func jouer_melodie(player_position, direction_balle, angle) -> void: - spawn_balle(player_position, direction_balle, angle) +func _process(delta) -> void: + pass # Cette fonction est requise pour que delta fonctionne correctement -func spawn_balle(player_position, direction_balle, angle) -> void: +func jouer_melodie(player_position: Vector2, direction_balle: Vector2, angle: float) -> void: + if not is_on_cooldown: # Vérifiez si nous pouvons tirer + spawn_balle(player_position, direction_balle, angle) + + +func spawn_balle(player_position: Vector2, direction_balle: Vector2, angle: float) -> void: if scene_node == null: print("Erreur : Aucun nœud parent défini pour ajouter la balle.") return - - var balle = preload("res://scenes/attaques/Balle.tscn").instantiate() + + var current_balle_scene = balle_scenes[current_balle_index] + var balle = current_balle_scene.instantiate() + if balle: - balle.position = player_position + balle.position = player_position balle.initial_direction = direction_balle balle.rotation = deg_to_rad(angle) scene_node.add_child(balle) - + # Basculer vers la prochaine balle pour le prochain tir + current_balle_index = (current_balle_index + 1) % len(balle_scenes) + + # Démarrez le cooldown après ce tir + start_cooldown() else: print("Erreur : la création de la balle a échoué.") + + +# Démarrer le timer pour le cooldown +func start_cooldown() -> void: + is_on_cooldown = true + var cooldown_timer = scene_node.get_node("TirCooldownTimer") + cooldown_timer.start() + + +func _on_cooldown_timeout() -> void: + is_on_cooldown = false # Réinitialisez l'état de cooldown après expiration du Timer diff --git a/scripts/Instrument/Tambour.gd b/scripts/Instrument/Tambour.gd index 6b5c712..4f2961e 100644 --- a/scripts/Instrument/Tambour.gd +++ b/scripts/Instrument/Tambour.gd @@ -1,5 +1,55 @@ class_name Tambour +var scene_node = null +@export var cooldown = 0.9 # Durée du cooldown en secondes +var is_on_cooldown = false # Indique si le cooldown est actif -func faire_roulement() -> void: - print("Le tambour fait un roulement.") +func set_scene_parent(node: Node) -> void: + scene_node = node + # Si scene_node est défini pour la première fois, on ajoute un Timer + if not scene_node.has_node("TambourCooldownTimer2"): # Changement du nom du Timer unique pour le Tambour + var cooldown_timer = Timer.new() + cooldown_timer.name = "TambourCooldownTimer2" # Nom unique pour éviter les conflits + cooldown_timer.one_shot = true + cooldown_timer.wait_time = cooldown + cooldown_timer.connect("timeout", Callable(self, "_on_cooldown_timeout")) + scene_node.add_child(cooldown_timer) + + +func jouer_melodie(player_position: Vector2) -> void: + if not is_on_cooldown: # Vérifiez si nous sommes en cooldown + spawn_onde(player_position) + + + +func spawn_onde(player_position: Vector2) -> void: + if scene_node == null: + print("Erreur : Aucun nœud parent défini pour ajouter l'onde.") + return + + var onde_scene = preload("res://scenes/attaques/Onde.tscn") # Chargez la scène de l'onde + var onde = onde_scene.instantiate() + + if onde: + onde.position = player_position + scene_node.add_child(onde) + + # Démarrez le cooldown après avoir ajouté l'onde + start_cooldown() + else: + print("Erreur : Impossible de créer l'onde.") + + +# Démarrer le Timer pour le cooldown +func start_cooldown() -> void: + is_on_cooldown = true + var cooldown_timer = scene_node.get_node("TambourCooldownTimer2") # Assurez-vous que le Timer est bien trouvé + if cooldown_timer: + cooldown_timer.start() + else: + print("Erreur : Timer introuvable.") + + +func _on_cooldown_timeout() -> void: + is_on_cooldown = false # Réinitialiser le cooldown lorsque le Timer se termine + print("Cooldown terminé.") diff --git a/scripts/Instrument/onde.gd b/scripts/Instrument/onde.gd new file mode 100644 index 0000000..01ba3de --- /dev/null +++ b/scripts/Instrument/onde.gd @@ -0,0 +1,20 @@ +extends CharacterBody2D + +var cooldown_timer = null + +func _process(delta: float) -> void: + if cooldown_timer == null: + cooldown_timer = Timer.new() + cooldown_timer.name = "OndeCooldownTimer" + cooldown_timer.one_shot = true + cooldown_timer.connect("timeout", Callable(self, "_on_cooldown_timeout")) + get_tree().root.add_child(cooldown_timer) + +# Démarrer le timer pour le cooldown +func start_cooldown() -> void: + cooldown_timer.start() + +func _on_cooldown_timeout() -> void: + cooldown_timer.queue_free() + cooldown_timer = null + queue_free() diff --git a/scripts/player_control.gd b/scripts/player_control.gd index 98d444b..f097c21 100644 --- a/scripts/player_control.gd +++ b/scripts/player_control.gd @@ -6,11 +6,20 @@ const max_boost_speed = 800 var previous_direction = Vector2.ZERO var boost_speed = 0 + var flute = null +var tambour = null + +# Slot actif (0 = Flûte, 1 = Tambour) +var active_slot = 0 + func _ready() -> void: flute = load("res://scripts/Instrument/Flute.gd").new() flute.set_scene_parent(get_tree().get_root()) + + tambour = load("res://scripts/Instrument/Tambour.gd").new() + tambour.set_scene_parent(get_tree().get_root()) @@ -35,21 +44,28 @@ func _process(delta: float) -> void: previous_direction = direction velocity = direction * (move_speed + boost_speed) - if Input.is_action_just_pressed("JOUER_MUSIQUE_HAUT") or Input.is_action_just_pressed("JOUER_MUSIQUE_BAS") or Input.is_action_just_pressed("JOUER_MUSIQUE_DROITE") or Input.is_action_just_pressed("JOUER_MUSIQUE_GAUCHE"): + if Input.is_action_just_pressed("CHANGER_SLOT"): + active_slot = (active_slot + 1) % 2 + + if Input.is_action_pressed("JOUER_MUSIQUE_HAUT") or Input.is_action_pressed("JOUER_MUSIQUE_BAS") or Input.is_action_pressed("JOUER_MUSIQUE_DROITE") or Input.is_action_pressed("JOUER_MUSIQUE_GAUCHE"): var direction_balle = Vector2.ZERO var angle = 0 - if Input.is_action_just_pressed("JOUER_MUSIQUE_HAUT"): + if Input.is_action_pressed("JOUER_MUSIQUE_HAUT"): direction_balle = Vector2(0, -1) angle = 180 - elif Input.is_action_just_pressed("JOUER_MUSIQUE_BAS"): + elif Input.is_action_pressed("JOUER_MUSIQUE_BAS"): direction_balle = Vector2(0, 1) angle = 0 - elif Input.is_action_just_pressed("JOUER_MUSIQUE_DROITE"): + elif Input.is_action_pressed("JOUER_MUSIQUE_DROITE"): direction_balle = Vector2(1, 0) angle = 270 - elif Input.is_action_just_pressed("JOUER_MUSIQUE_GAUCHE"): + elif Input.is_action_pressed("JOUER_MUSIQUE_GAUCHE"): direction_balle = Vector2(-1, 0) angle = 90 - flute.jouer_melodie(position, direction_balle, angle) + if active_slot == 0: # Slot Flûte + flute.jouer_melodie(position, direction_balle, angle) + elif active_slot == 1: # Slot Tambour + tambour.jouer_melodie(position) + pass From a8eaa0100d7fe149f8d4290cc18e9f86341baf00 Mon Sep 17 00:00:00 2001 From: achipo Date: Fri, 24 Jan 2025 19:24:11 +0000 Subject: [PATCH 2/4] HERE'S THE POULPE !!!!!!!!!!!!!! --- ressources/images/poulpe-1.png | Bin 0 -> 3699 bytes ressources/images/poulpe-2.png | Bin 0 -> 3483 bytes ressources/images/poulpe-atk.png | Bin 0 -> 3696 bytes ressources/images/poulpe-bullet.png | Bin 0 -> 2565 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 ressources/images/poulpe-1.png create mode 100644 ressources/images/poulpe-2.png create mode 100644 ressources/images/poulpe-atk.png create mode 100644 ressources/images/poulpe-bullet.png diff --git a/ressources/images/poulpe-1.png b/ressources/images/poulpe-1.png new file mode 100644 index 0000000000000000000000000000000000000000..8f5297562fd662c39016433540a3af65b6140de3 GIT binary patch literal 3699 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 S;dcS?Sy|Ybmzl9*z`p=u=MR|x literal 0 HcmV?d00001 diff --git a/ressources/images/poulpe-2.png b/ressources/images/poulpe-2.png new file mode 100644 index 0000000000000000000000000000000000000000..362c938f6c0938eec5f0a0aaf5fed5551dcd15ab GIT binary patch literal 3483 zcmd5$@lSe1d@~Xz;RO2xwG2{_(_UR?%L^YKu zjnh>_lnfQ+b&L`dqLNo}3X$?E<;~sQ`?+`izkl7o_S$Rxerx@H-`{Wje&3bk>TEB+ zSY12NVMve_(1eP?#y{_me2_`%bEWBEG!tb&}mx*3(+UQ6WBjnln>k!y#GMRS@AlV4Y;}AeqtE-vL21cZ` z8pQ@G0Q(g)lJkDr#B!ECeGdDkn6`BLL9-_s}UEDS#C*8k{xfnlfjf4`TDys zr3SIEM$Zb?^!}>sRF$!bkM)_9jVn@$M&CPuzD9<0gELC&ejakCx+3u+wlBP-s4mA7 z#bhgYz~b7$&h@zkc+d>%A2wm)%wdo>8vMl&>5;4m0M$3MhT`*Ly;sI%L|%3 zy58o7HZIgd(z~~SK9g&f*G8Y6F8?MKvv}(W;s-_&eK5(g7|13q&P9bU7YiBgANSad z@LZWh_!YII8l;AGNP;s!8-FiwwrifyvNB3Y#(Wp>5JUaq3nOSFK32&?3E-o%wLAJ@ ze5`?bjGaF;@mW8Ek|0B+9nf}0n%f5$@h!?GzJ$_+e* z3mQu0ql4iJ{WVz%HXw_8p#L~PSag+7eJD4;_jfZT#PLEw=pqie;S;a!y3ri>I;Qr6 zF@3^~biFrIkOs~W%89GVH)!4cS$!DuW2(on11O9VjNbDKIc|Rgb@dLa?U=?=(fyG~ z>3D$mU?+#XdaPBiE?7L$d1-#M>sC}KY`qzAc--eE(!jHzqe}u)do3W!v;t3nS9ktn zO#+}J98rmU{t0ZT({j7>s|!qmHmNNqj2`p*oCy$Ab|mUV{M zZLNND{BDQ^2=4wl^!aT@JcCUN_IxNf=!v*1P3V^9OpFbwGKtg)T{$0WIr2ZtJj7e? z!+gTzlNN(}GxdF4zOlb1Hw3 zH#P9)G|D|VqTJF${_c0v!J&R!W<)?t*}bn9rJ)x0DWTe-@~@8Mg)ce3wJjWC|Ii|f zkOm8!M&z%H+F_9c@|43~ToRt+%d{(Yynlt#>R8CZrC~4lBse7gq^v-Ul8JpbR2*wdx24wZFGq)hsR zFp3{X+`Vs1;c7=k1!r&HZ2K5zW92(RlW}uDlW2~HTk|Rl2EKZbjY|fpRIY>@w>tx? zat~M&yQzLXGNx>$+$A_*9Z3;olg7lce4=?V}yE;DUX6Z zQqhqpn5_FHL)v<$t0!drmva#=En7fJ=-eZ>Ko?l(_;qNnzvC>4vx{8Li|s(X z7JxM&Yp8q()ImyFKfU0y%u!<(Vg!=s!1?Q>{h%e&f4;6|CXwB0XW|st=<D!;_y*lq7taPZ+*B z)n&01@zz0LadmF zm}H&o7RG}@H0F<`qq=e1%R|_fd|{V+cSU_y2HckZjZ1w>*LOOy0&qSr9~Jvd*8;I{<2z4wSQKML0ww$~nMjw$ot5Up#);9ZCrN1&Wm_;R5@Y7hunL!65@rVP zZyrK1iCMU+I#)roOHNjA>3rIxb_(^i;nvv$xV@tPWf%)qVMKR|o1$~UGKv9ewd^|~ zT}Cm&t!z^2HW>{pV74_nfc=6K-7Rb4k6ccf(>O6|y9f529-a z%l6%#(jpJXKJSk+-aFheu8dL<7*;9jT0~i1Y+gEgk|~%r#&0tY<1)k;>6g-}?v;5X zXu?i#bkLfueQc0Q?fz|9ydSBM9ZYJ;zJ26!lGKN;Yl*~EJ#nvYh`k{F0vr3I9Uk3R z!ddv04?-+_e|||Vn=I+M@%?G()(j^dATHm1@4g!kfi)cMm5@oN`cLN!(<38OVUuht z+FP-rr^a#kvE{bvIU;mklwllw7PE6~xBM90#+Z`E1BLsesL&ir8 zzr~)!)Z)xET%AeqmzxY=&*|*{TSG=HU)Pd@S|O9x)N2dyZJllM ItObYu2_FNbh5!Hn literal 0 HcmV?d00001 diff --git a/ressources/images/poulpe-atk.png b/ressources/images/poulpe-atk.png new file mode 100644 index 0000000000000000000000000000000000000000..650cd9f4ef166db0948563cb421b4ff8860d21a8 GIT binary patch literal 3696 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 PfO>4L95_XmUh(ix+*I-> literal 0 HcmV?d00001 diff --git a/ressources/images/poulpe-bullet.png b/ressources/images/poulpe-bullet.png new file mode 100644 index 0000000000000000000000000000000000000000..8d11bebdc592634dce48be8a0c5d7dd401521083 GIT binary patch literal 2565 zcmeHIeM}Q)7=Q0L^@<2BouX5)wvo<(fNPziD2JamL=0)hhn9hfU#}Ka{yR3WRkE?)H_D{ z2KH{3xosZ!KJVJ?>2m|?s`Ie?FHTcok+L|=i!F{I~U_yyIdQibZWn*=(JS~F1b|UAv$)Mi?x^d zB4U^HV-gbZHEF;1pks?~w58ZtXo_6V*fIGYG8vVm9B9&GxFORIH!P|g5}+7+;A(!M zCnXi`K+}BX4tTn$7v5yzQVx&AlM*%8K|N-REEz-B?wNy|gF3U?U9fuKL#9Xnv<)5e ztPx(mp=23?kD@8Fho|xYBAK)eR?RXmk5OKKjUnPI(agi=iJnvMNn8z2kl64ly13e8aCaG2bwVsqv(&*|#g!B{`d{rDH0$jpwXg`vjy#Qtlx} z#BLf_E{qSF+5hfm&Nd z!0JUpBS8Y)Rvwv584GbX@p(l+Ry7nO)gteclVG26yj_N>@#2fQa8dLu07>|5xw($C z%t~!2h47g4I-@{hW3b;qr*~-j#oeVXwOi8s5VYoOXRZ}DhwZ=Xz6?rURJee$9w<1% zQ6u8O*n8txJ61h)X0*)14YCm8ID)3Qj}3cK9f3KQn(i;@)eS+_Q<=G6Wf`Wf$~JU# z3+q8_PRo6mf$AUYu7)>tNTBw}8sq+)e<3U7lgdWC9@rk$+@b~2G6YhWgVJ$6R5jyi zD^xX75Bf*q?FGxb=L)~e_-I6l)ZbM#ZFhP-i90`WyiDq|jI=z!skw&C=8Hot+Fgz1 zV05~GiZJw_6+wrI($LAJK@jA_+-@$FYu>lAmrr{5RJ^=wz4lrjDg`E%C+S7lPj2q! z(yaIUlD0Y|dwyAl#joM>B)7{Sj!1D2Cx9!D@l9 z4bBYHFpE)ep_uvS3f)<53mg{77N*~^7}3GO5EN@~r8WG!+KWJHxV!{T8(j}mRxV+> zbHYxmn41VP0BX>E(1z$J8XU0JB@fzv8It5(XRd&kCRycLe6D*L?+=uDBV2v>ZF zphXw-qnte2X3?wADmc-G9fu2vnVxczQxrvlWb2iq7@uw!Tfd_ApjgoQ&_@C`-6Zro vv1ACO=k;?R?MwrBn*!Yi-?H%ES#V%aUUjhXGduJEUb4+{iE)!62Y|l-a;MBp literal 0 HcmV?d00001 From ee2ff1112e3c7cb2ca5e8ffa0ecf49b2fb2c7612 Mon Sep 17 00:00:00 2001 From: Renarde-dev Date: Fri, 24 Jan 2025 21:16:37 +0100 Subject: [PATCH 3/4] Fix colors --- project.godot | 10 ++++++++++ scenes/Room.tscn | 6 ++++-- scenes/attaques/Balle.tscn | 22 ++++++++++++++++++++ scenes/attaques/Balle1.tscn | 16 --------------- scenes/attaques/Balle2.tscn | 16 --------------- scenes/attaques/Balle3.tscn | 16 --------------- scenes/enemies/slime.tscn | 9 +++++---- scenes/player_melodie.tscn | 7 ++++--- scripts/Instrument/Flute.gd | 40 ++++++++++++++++--------------------- scripts/Instrument/balle.gd | 21 +++++++++---------- scripts/player_control.gd | 33 +++++++++++++++--------------- 11 files changed, 88 insertions(+), 108 deletions(-) create mode 100644 scenes/attaques/Balle.tscn delete mode 100644 scenes/attaques/Balle1.tscn delete mode 100644 scenes/attaques/Balle2.tscn delete mode 100644 scenes/attaques/Balle3.tscn diff --git a/project.godot b/project.godot index 5aeb0e2..1ec1a46 100644 --- a/project.godot +++ b/project.godot @@ -25,6 +25,11 @@ window/stretch/mode="canvas_items" project/assembly_name="code-game-jam-drop-plafond-2025" +[global_group] + +World_Border="" +Enemies="" + [input] BOUGER_HAUT={ @@ -52,6 +57,11 @@ PAUSE={ "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } +JOUER_MUSIQUE={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null) +] +} JOUER_MUSIQUE_HAUT={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) diff --git a/scenes/Room.tscn b/scenes/Room.tscn index f4e6aa0..6d4c96d 100644 --- a/scenes/Room.tscn +++ b/scenes/Room.tscn @@ -32,7 +32,9 @@ stretch_mode = 1 [node name="Player_Melodie" parent="." instance=ExtResource("1_cl1wt")] scale = Vector2(4, 4) -[node name="StaticBody2D" type="StaticBody2D" parent="."] +[node name="StaticBody2D" type="StaticBody2D" parent="." groups=["World_Border"]] +collision_layer = 3 +collision_mask = 3 [node name="World Border Up" type="CollisionShape2D" parent="StaticBody2D"] shape = SubResource("WorldBoundaryShape2D_1c4te") @@ -50,5 +52,5 @@ shape = SubResource("WorldBoundaryShape2D_ia1hi") [node name="Camera2D" type="Camera2D" parent="CanvasLayer"] -[node name="Slime" parent="." instance=ExtResource("3_04ip2")] +[node name="Slime" parent="." groups=["Enemies"] instance=ExtResource("3_04ip2")] position = Vector2(-448, 205) diff --git a/scenes/attaques/Balle.tscn b/scenes/attaques/Balle.tscn new file mode 100644 index 0000000..8a4e666 --- /dev/null +++ b/scenes/attaques/Balle.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=4 format=3 uid="uid://buhlaoq2nalup"] + +[ext_resource type="Script" path="res://scripts/Instrument/balle.gd" id="1_4kd3w"] +[ext_resource type="Texture2D" uid="uid://csbrejwjfkspr" path="res://ressources/images/note1.png" id="1_qx664"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_1x7bj"] +size = Vector2(8, 16) + +[node name="Balle" type="Area2D" node_paths=PackedStringArray("raycast")] +collision_layer = 3 +collision_mask = 3 +script = ExtResource("1_4kd3w") +raycast = NodePath("") + +[node name="Sprite2D" type="Sprite2D" parent="."] +rotation = 3.14159 +texture = ExtResource("1_qx664") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_1x7bj") + +[connection signal="body_entered" from="." to="." method="Collision"] diff --git a/scenes/attaques/Balle1.tscn b/scenes/attaques/Balle1.tscn deleted file mode 100644 index 473cd8f..0000000 --- a/scenes/attaques/Balle1.tscn +++ /dev/null @@ -1,16 +0,0 @@ -[gd_scene load_steps=3 format=3 uid="uid://btpp8l4efhrmj"] - -[ext_resource type="Script" path="res://scripts/Instrument/balle.gd" id="1_mw8yb"] -[ext_resource type="Texture2D" uid="uid://csbrejwjfkspr" path="res://ressources/images/note1.png" id="2_xpv2h"] - -[node name="Balle1" type="CharacterBody2D" node_paths=PackedStringArray("raycast")] -script = ExtResource("1_mw8yb") -raycast = NodePath("RayCast2D") - -[node name="Sprite2D" type="Sprite2D" parent="."] -rotation = 3.14159 -texture = ExtResource("2_xpv2h") - -[node name="RayCast2D" type="RayCast2D" parent="."] -position = Vector2(0, -7) -target_position = Vector2(0, 15) diff --git a/scenes/attaques/Balle2.tscn b/scenes/attaques/Balle2.tscn deleted file mode 100644 index 959f982..0000000 --- a/scenes/attaques/Balle2.tscn +++ /dev/null @@ -1,16 +0,0 @@ -[gd_scene load_steps=3 format=3 uid="uid://crpjmum8m2m1b"] - -[ext_resource type="Script" path="res://scripts/Instrument/balle.gd" id="1_gf62f"] -[ext_resource type="Texture2D" uid="uid://1xayae6jyuge" path="res://ressources/images/note2.png" id="2_5005k"] - -[node name="Balle1" type="CharacterBody2D" node_paths=PackedStringArray("raycast")] -script = ExtResource("1_gf62f") -raycast = NodePath("RayCast2D") - -[node name="Sprite2D" type="Sprite2D" parent="."] -rotation = 3.14159 -texture = ExtResource("2_5005k") - -[node name="RayCast2D" type="RayCast2D" parent="."] -position = Vector2(0, -7) -target_position = Vector2(0, 15) diff --git a/scenes/attaques/Balle3.tscn b/scenes/attaques/Balle3.tscn deleted file mode 100644 index c825cf4..0000000 --- a/scenes/attaques/Balle3.tscn +++ /dev/null @@ -1,16 +0,0 @@ -[gd_scene load_steps=3 format=3 uid="uid://j4j8mg7jhuwy"] - -[ext_resource type="Script" path="res://scripts/Instrument/balle.gd" id="1_7dxcl"] -[ext_resource type="Texture2D" uid="uid://cq5j2fb07d7f8" path="res://ressources/images/notes3.svg" id="2_gx4yt"] - -[node name="Balle1" type="CharacterBody2D" node_paths=PackedStringArray("raycast")] -script = ExtResource("1_7dxcl") -raycast = NodePath("RayCast2D") - -[node name="Sprite2D" type="Sprite2D" parent="."] -rotation = 3.14159 -texture = ExtResource("2_gx4yt") - -[node name="RayCast2D" type="RayCast2D" parent="."] -position = Vector2(0, -7) -target_position = Vector2(0, 15) diff --git a/scenes/enemies/slime.tscn b/scenes/enemies/slime.tscn index 7f074c1..1ace833 100644 --- a/scenes/enemies/slime.tscn +++ b/scenes/enemies/slime.tscn @@ -1,9 +1,9 @@ [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"] +[ext_resource type="Texture2D" uid="uid://ba14nw87lxef4" path="res://ressources/images/blob-1.png.png" id="1_n4mgf"] +[ext_resource type="Texture2D" uid="uid://cpge55gmdllmi" path="res://ressources/images/blob-2-4.png.png" id="2_w8gqg"] +[ext_resource type="Texture2D" uid="uid://bst1iwqgqmcvl" path="res://ressources/images/blob-3.png.png" id="3_pwpfc"] [sub_resource type="SpriteFrames" id="SpriteFrames_qfla8"] animations = [{ @@ -40,6 +40,8 @@ animations = [{ radius = 20.0 [node name="Slime" type="CharacterBody2D"] +collision_layer = 3 +collision_mask = 3 script = ExtResource("1_hnufy") [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] @@ -51,4 +53,3 @@ frame_progress = 1.0 [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource("CircleShape2D_bokrm") -disabled = true diff --git a/scenes/player_melodie.tscn b/scenes/player_melodie.tscn index 064f1dc..7cc90e9 100644 --- a/scenes/player_melodie.tscn +++ b/scenes/player_melodie.tscn @@ -3,8 +3,9 @@ [ext_resource type="Script" path="res://scripts/player_control.gd" id="1_7sg4g"] [ext_resource type="Texture2D" uid="uid://uebyv8y862vt" path="res://ressources/images/melodie.svg" id="2_se13h"] -[sub_resource type="RectangleShape2D" id="RectangleShape2D_uwwdc"] -size = Vector2(16, 32) +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_wgkyh"] +radius = 6.0 +height = 32.0 [node name="Player_Melodie" type="CharacterBody2D"] script = ExtResource("1_7sg4g") @@ -14,4 +15,4 @@ scale = Vector2(0.75, 0.75) texture = ExtResource("2_se13h") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] -shape = SubResource("RectangleShape2D_uwwdc") +shape = SubResource("CapsuleShape2D_wgkyh") diff --git a/scripts/Instrument/Flute.gd b/scripts/Instrument/Flute.gd index f7d41c1..e8dce6a 100644 --- a/scripts/Instrument/Flute.gd +++ b/scripts/Instrument/Flute.gd @@ -1,14 +1,16 @@ class_name Flute var scene_node = null -var balle_scenes = [ - preload("res://scenes/attaques/Balle1.tscn"), - preload("res://scenes/attaques/Balle2.tscn"), - preload("res://scenes/attaques/Balle3.tscn") +var balle_template = preload("res://scenes/attaques/Balle.tscn") +var color_index = 0 +var color_list = [ + preload("res://ressources/images/note1.png"), + preload("res://ressources/images/note2.png"), + preload("res://ressources/images/note3.png"), + preload("res://ressources/images/note2.png") ] -var current_balle_index = 0 -@export var cooldown = 0.15 # Durée du cooldown en secondes +@export var cooldown = 0.5 # Durée du cooldown en secondes var is_on_cooldown = false # Indique si le cooldown est en cours func set_scene_parent(node: Node) -> void: @@ -36,23 +38,15 @@ func spawn_balle(player_position: Vector2, direction_balle: Vector2, angle: floa if scene_node == null: print("Erreur : Aucun nœud parent défini pour ajouter la balle.") return - - var current_balle_scene = balle_scenes[current_balle_index] - var balle = current_balle_scene.instantiate() - - if balle: - balle.position = player_position - balle.initial_direction = direction_balle - balle.rotation = deg_to_rad(angle) - scene_node.add_child(balle) - - # Basculer vers la prochaine balle pour le prochain tir - current_balle_index = (current_balle_index + 1) % len(balle_scenes) - - # Démarrez le cooldown après ce tir - start_cooldown() - else: - print("Erreur : la création de la balle a échoué.") + var balle = balle_template.instantiate() + balle.position = player_position + balle.initial_direction = direction_balle + balle.rotation = deg_to_rad(angle) + color_index = (1 +color_index)% len(color_list) + balle.get_node("Sprite2D").texture = color_list[color_index] + scene_node.add_child(balle) + # Démarrez le cooldown après ce tir + start_cooldown() # Démarrer le timer pour le cooldown diff --git a/scripts/Instrument/balle.gd b/scripts/Instrument/balle.gd index 8fca64b..0bbc40c 100644 --- a/scripts/Instrument/balle.gd +++ b/scripts/Instrument/balle.gd @@ -1,20 +1,17 @@ -extends CharacterBody2D +extends Area2D -@export var speed: float = 400 # Définir la vitesse de la balle +@export var speed: float = 300 # Définir la vitesse de la balle @export var raycast: RayCast2D - - # Direction initiale du mouvement var initial_direction: Vector2 = Vector2(1, 0) # Exemple par défaut : vers la droite -func _ready() -> void: - # Configurer la vitesse sur l'axe désiré - velocity = initial_direction * speed # Multiplie la direction initiale par la vitesse - func _physics_process(delta: float) -> void: - move_and_collide(velocity * delta) - if raycast.is_colliding(): - queue_free() + position += initial_direction * speed * delta - + +func Collision(body: Node2D) -> void: + if body.is_in_group("World_Border") : + queue_free() + if body.is_in_group("Enemies") : + queue_free() diff --git a/scripts/player_control.gd b/scripts/player_control.gd index f097c21..c774c96 100644 --- a/scripts/player_control.gd +++ b/scripts/player_control.gd @@ -13,6 +13,7 @@ var tambour = null # Slot actif (0 = Flûte, 1 = Tambour) var active_slot = 0 +var flute_timer = 0 func _ready() -> void: flute = load("res://scripts/Instrument/Flute.gd").new() @@ -47,22 +48,22 @@ func _process(delta: float) -> void: if Input.is_action_just_pressed("CHANGER_SLOT"): active_slot = (active_slot + 1) % 2 - if Input.is_action_pressed("JOUER_MUSIQUE_HAUT") or Input.is_action_pressed("JOUER_MUSIQUE_BAS") or Input.is_action_pressed("JOUER_MUSIQUE_DROITE") or Input.is_action_pressed("JOUER_MUSIQUE_GAUCHE"): - var direction_balle = Vector2.ZERO - var angle = 0 - if Input.is_action_pressed("JOUER_MUSIQUE_HAUT"): - direction_balle = Vector2(0, -1) - angle = 180 - elif Input.is_action_pressed("JOUER_MUSIQUE_BAS"): - direction_balle = Vector2(0, 1) - angle = 0 - elif Input.is_action_pressed("JOUER_MUSIQUE_DROITE"): - direction_balle = Vector2(1, 0) - angle = 270 - elif Input.is_action_pressed("JOUER_MUSIQUE_GAUCHE"): - direction_balle = Vector2(-1, 0) - angle = 90 - + + var direction_balle = Vector2.ZERO + var angle = 0 + if Input.is_action_pressed("JOUER_MUSIQUE_HAUT"): + direction_balle = Vector2(0, -1) + angle = 180 + elif Input.is_action_pressed("JOUER_MUSIQUE_BAS"): + direction_balle = Vector2(0, 1) + angle = 0 + elif Input.is_action_pressed("JOUER_MUSIQUE_DROITE"): + direction_balle = Vector2(1, 0) + angle = 270 + elif Input.is_action_pressed("JOUER_MUSIQUE_GAUCHE"): + direction_balle = Vector2(-1, 0) + angle = 90 + if direction_balle != Vector2.ZERO : if active_slot == 0: # Slot Flûte flute.jouer_melodie(position, direction_balle, angle) elif active_slot == 1: # Slot Tambour From e9952f4ec923788246ca1496d7d0f458c05ec7e1 Mon Sep 17 00:00:00 2001 From: Renarde-dev Date: Fri, 24 Jan 2025 21:18:53 +0100 Subject: [PATCH 4/4] Remove print and merge assets --- ressources/images/poulpe-1.png.import | 34 ++++++++++++++++++++++ ressources/images/poulpe-2.png.import | 34 ++++++++++++++++++++++ ressources/images/poulpe-atk.png.import | 34 ++++++++++++++++++++++ ressources/images/poulpe-bullet.png.import | 34 ++++++++++++++++++++++ ressources/sons/idle_theme.wav.import | 24 +++++++++++++++ scenes/attaques/Balle.tscn | 3 +- scenes/enemies/slime.gd | 1 - 7 files changed, 161 insertions(+), 3 deletions(-) create mode 100644 ressources/images/poulpe-1.png.import create mode 100644 ressources/images/poulpe-2.png.import create mode 100644 ressources/images/poulpe-atk.png.import create mode 100644 ressources/images/poulpe-bullet.png.import create mode 100644 ressources/sons/idle_theme.wav.import diff --git a/ressources/images/poulpe-1.png.import b/ressources/images/poulpe-1.png.import new file mode 100644 index 0000000..a0600ae --- /dev/null +++ b/ressources/images/poulpe-1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://2spn60rmdyy5" +path="res://.godot/imported/poulpe-1.png-9fe980980e71224a7a2953bc228f988d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ressources/images/poulpe-1.png" +dest_files=["res://.godot/imported/poulpe-1.png-9fe980980e71224a7a2953bc228f988d.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/poulpe-2.png.import b/ressources/images/poulpe-2.png.import new file mode 100644 index 0000000..d147605 --- /dev/null +++ b/ressources/images/poulpe-2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b4ukmsspx16f" +path="res://.godot/imported/poulpe-2.png-e0bb613d3a74e50be7b911ae44672c8a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ressources/images/poulpe-2.png" +dest_files=["res://.godot/imported/poulpe-2.png-e0bb613d3a74e50be7b911ae44672c8a.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/poulpe-atk.png.import b/ressources/images/poulpe-atk.png.import new file mode 100644 index 0000000..1f97b0a --- /dev/null +++ b/ressources/images/poulpe-atk.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dinxaox0ug7kx" +path="res://.godot/imported/poulpe-atk.png-083584296229d569f6bbc6969a32bc79.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ressources/images/poulpe-atk.png" +dest_files=["res://.godot/imported/poulpe-atk.png-083584296229d569f6bbc6969a32bc79.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/poulpe-bullet.png.import b/ressources/images/poulpe-bullet.png.import new file mode 100644 index 0000000..3640b00 --- /dev/null +++ b/ressources/images/poulpe-bullet.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bg7xknf5g2rfj" +path="res://.godot/imported/poulpe-bullet.png-b20bc813564a020a5c3d1f084af754d3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ressources/images/poulpe-bullet.png" +dest_files=["res://.godot/imported/poulpe-bullet.png-b20bc813564a020a5c3d1f084af754d3.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/sons/idle_theme.wav.import b/ressources/sons/idle_theme.wav.import new file mode 100644 index 0000000..496bf8c --- /dev/null +++ b/ressources/sons/idle_theme.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://drtyf4pv1cswd" +path="res://.godot/imported/idle_theme.wav-7d853091879d7fbaec43f980f4ba9daf.sample" + +[deps] + +source_file="res://ressources/sons/idle_theme.wav" +dest_files=["res://.godot/imported/idle_theme.wav-7d853091879d7fbaec43f980f4ba9daf.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/scenes/attaques/Balle.tscn b/scenes/attaques/Balle.tscn index 8a4e666..919db87 100644 --- a/scenes/attaques/Balle.tscn +++ b/scenes/attaques/Balle.tscn @@ -6,11 +6,10 @@ [sub_resource type="RectangleShape2D" id="RectangleShape2D_1x7bj"] size = Vector2(8, 16) -[node name="Balle" type="Area2D" node_paths=PackedStringArray("raycast")] +[node name="Balle" type="Area2D"] collision_layer = 3 collision_mask = 3 script = ExtResource("1_4kd3w") -raycast = NodePath("") [node name="Sprite2D" type="Sprite2D" parent="."] rotation = 3.14159 diff --git a/scenes/enemies/slime.gd b/scenes/enemies/slime.gd index 6f42d06..adfd4ff 100644 --- a/scenes/enemies/slime.gd +++ b/scenes/enemies/slime.gd @@ -16,7 +16,6 @@ func _physics_process(delta: float) -> void: 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