Bladeren bron

:sparkles: Simplifie le code de sortie de terrain

Dommage que la detection par zone de corps statiques qui se deplacent ne marche pas en Godot 4.2.
DricomDragon 10 maanden geleden
bovenliggende
commit
17a150059e

+ 3 - 1
godot/composants/objets/arene/arene.gd

@@ -8,6 +8,8 @@ signal brique_sortie
 func _quand_zone_exterieure_detecte_entree(corps: Node2D) -> void:
 	if corps is Balle:
 		_traiter_balle_sortie(corps)
+	elif corps is Brique:
+		_traiter_brique_sortie(corps)
 
 
 func _traiter_balle_sortie(balle: Balle) -> void:
@@ -15,5 +17,5 @@ func _traiter_balle_sortie(balle: Balle) -> void:
 	balle_detruite.emit()
 
 
-func _quand_zone_exterieure_detecte_entree_zone(area_rid, area, area_shape_index, local_shape_index) -> void:
+func _traiter_brique_sortie(brique: Brique) -> void:
 	brique_sortie.emit()

+ 0 - 1
godot/composants/objets/arene/arene.tscn

@@ -38,5 +38,4 @@ monitorable = false
 [node name="FormeZone" type="CollisionShape2D" parent="ZoneExterieure"]
 shape = SubResource("RectangleShape2D_u5oj2")
 
-[connection signal="area_shape_entered" from="ZoneExterieure" to="." method="_quand_zone_exterieure_detecte_entree_zone"]
 [connection signal="body_entered" from="ZoneExterieure" to="." method="_quand_zone_exterieure_detecte_entree"]

+ 2 - 15
godot/composants/objets/brique/brique.tscn

@@ -1,12 +1,9 @@
-[gd_scene load_steps=6 format=3 uid="uid://brd8yid3l7wgm"]
+[gd_scene load_steps=5 format=3 uid="uid://brd8yid3l7wgm"]
 
 [ext_resource type="PhysicsMaterial" uid="uid://c6bddricwmcxx" path="res://ressources/materiaux/metal.tres" id="1_exny1"]
 [ext_resource type="Script" path="res://composants/objets/brique/brique.gd" id="2_gkrr0"]
 [ext_resource type="Texture2D" uid="uid://r7iyjvdve5a1" path="res://composants/objets/brique/images/01.png" id="3_72vd6"]
 
-[sub_resource type="RectangleShape2D" id="RectangleShape2D_ong6t"]
-size = Vector2(40, 26)
-
 [sub_resource type="RectangleShape2D" id="RectangleShape2D_tnj5s"]
 size = Vector2(30, 16)
 
@@ -15,21 +12,11 @@ collision_layer = 16
 physics_material_override = ExtResource("1_exny1")
 script = ExtResource("2_gkrr0")
 
-[node name="ZoneInfluence" type="Area2D" parent="."]
-collision_layer = 16
-collision_mask = 20
-monitoring = false
-
-[node name="FormeInfluence" type="CollisionShape2D" parent="ZoneInfluence"]
-visible = false
-position = Vector2(15, 8)
-shape = SubResource("RectangleShape2D_ong6t")
-
 [node name="Image" type="Sprite2D" parent="."]
 texture = ExtResource("3_72vd6")
 centered = false
 
-[node name="FormeRebond" type="CollisionShape2D" parent="."]
+[node name="Forme" type="CollisionShape2D" parent="."]
 visible = false
 position = Vector2(15, 8)
 shape = SubResource("RectangleShape2D_tnj5s")