godot-shooter / commit
Make enemy-player collisions do damage to the player and destroy the enemy.
Enemy.gd | 12 ++++++++++++ Enemy.tscn | 13 ++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/Enemy.gd b/Enemy.gd index 5360bd4..15ac29c 100644 --- a/Enemy.gd +++ b/Enemy.gd @@ -93,3 +93,15 @@ func get_damage_point_on_body() -> Vector2: func remove_thyself(): queue_free() + +func _on_Area2D_body_entered(body: Node) -> void: + var players = get_tree().get_nodes_in_group("player") + var player: Player = players[0] + var is_player = body == player + if is_player: + player.hurt(2) + var explosion = Explosion.instance() + explosion.transform = transform + get_parent().add_child(explosion) + kill() + diff --git a/Enemy.tscn b/Enemy.tscn index 0df69a1..0415eef 100644 --- a/Enemy.tscn +++ b/Enemy.tscn @@ -61,9 +61,6 @@ text = "HEALTH" modulate = Color( 1, 0, 0, 1 ) texture = ExtResource( 3 ) -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] -polygon = PoolVector2Array( 0, -23, -7, 5, -12, 9, -19, 9, -23, 14, -23, 19, -19, 23, -14, 23, -9, 19, -9, 14, -10, 12, -6, 9, 0, 15, 6, 9, 10, 12, 9, 14, 9, 19, 13, 23, 18, 23, 23, 18, 23, 14, 19, 10, 13, 10, 7, 5 ) - [node name="AnimationPlayer" type="AnimationPlayer" parent="."] anims/RESET = SubResource( 1 ) anims/fade_out = SubResource( 2 ) @@ -82,3 +79,13 @@ position = Vector2( 16, 16 ) [node name="RayCast2D" type="RayCast2D" parent="."] enabled = true cast_to = Vector2( 0, -50 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] +polygon = PoolVector2Array( 0, -23, -7, 5, -12, 9, -19, 9, -23, 14, -23, 19, -19, 23, -14, 23, -9, 19, -9, 14, -10, 12, -6, 9, 0, 15, 6, 9, 10, 12, 9, 14, 9, 19, 13, 23, 18, 23, 23, 18, 23, 14, 19, 10, 13, 10, 7, 5 ) + +[node name="Area2D" type="Area2D" parent="."] + +[node name="CollisionPolygon2D2" type="CollisionPolygon2D" parent="Area2D"] +polygon = PoolVector2Array( 0, -23, -7, 5, -12, 9, -19, 9, -23, 14, -23, 19, -19, 23, -14, 23, -9, 19, -9, 14, -10, 12, -6, 9, 0, 15, 6, 9, 10, 12, 9, 14, 9, 19, 13, 23, 18, 23, 23, 18, 23, 14, 19, 10, 13, 10, 7, 5 ) + +[connection signal="body_entered" from="Area2D" to="." method="_on_Area2D_body_entered"]