From 0c9528c7c1ab9b844b2427b6c28bed030ee6715e Mon Sep 17 00:00:00 2001 From: Haze Weathers Date: Wed, 22 Mar 2023 13:28:16 -0400 Subject: [PATCH] make arrows collide with dynamic objects (closes #61) --- objects/environment/rock/crate.tscn | 2 +- objects/environment/rock/rock.tscn | 2 +- objects/player/arrow_projectile.gd | 2 +- objects/player/arrow_projectile.tscn | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/objects/environment/rock/crate.tscn b/objects/environment/rock/crate.tscn index 88a0c29..55117a6 100644 --- a/objects/environment/rock/crate.tscn +++ b/objects/environment/rock/crate.tscn @@ -9,7 +9,7 @@ shader = ExtResource( 2 ) shader_param/border_color = Color( 0, 0, 0, 1 ) shader_param/border_corners = true -[node name="Rock" instance=ExtResource( 1 )] +[node name="Crate" instance=ExtResource( 1 )] [node name="Sprite" parent="." index="0"] material = SubResource( 1 ) diff --git a/objects/environment/rock/rock.tscn b/objects/environment/rock/rock.tscn index f535dd4..484d58a 100644 --- a/objects/environment/rock/rock.tscn +++ b/objects/environment/rock/rock.tscn @@ -15,7 +15,7 @@ extents = Vector2( 3.7, 4 ) [sub_resource type="RectangleShape2D" id=3] extents = Vector2( 4, 4 ) -[node name="Rock" type="KinematicBody2D" groups=["pushable"]] +[node name="Rock" type="KinematicBody2D" groups=["pushable", "stop_arrow"]] collision_layer = 4 script = ExtResource( 3 ) diff --git a/objects/player/arrow_projectile.gd b/objects/player/arrow_projectile.gd index a3964a9..d2ea850 100644 --- a/objects/player/arrow_projectile.gd +++ b/objects/player/arrow_projectile.gd @@ -30,7 +30,7 @@ func _physics_process(delta): #Wall Collision func _on_Hitbox_body_entered(body): if breaks_on_wall: - if body is TileMap or body is StaticBody2D: + if body is TileMap or body is StaticBody2D or body.is_in_group("stop_arrow"): _make_sparks() _persist_trail() queue_free() diff --git a/objects/player/arrow_projectile.tscn b/objects/player/arrow_projectile.tscn index 2e30638..2b416ec 100644 --- a/objects/player/arrow_projectile.tscn +++ b/objects/player/arrow_projectile.tscn @@ -46,6 +46,7 @@ scale_amount_random = 0.25 scale_amount_curve = SubResource( 3 ) [node name="Hitbox" type="Area2D" parent="." groups=["arrow"]] +collision_mask = 5 [node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"] position = Vector2( -0.5, -0.5 )