improved grenade collisions

This commit is contained in:
Adam Burns 2025-10-26 13:42:53 -04:00
parent 1c2cb39425
commit 40d8f909e8
9 changed files with 236 additions and 22 deletions

View File

@ -84,6 +84,7 @@ throw={
2d_physics/layer_1="player"
2d_physics/layer_2="environment"
2d_physics/layer_3="objects"
2d_physics/layer_4="weapons"
[rendering]

View File

@ -7,6 +7,8 @@
size = Vector2(16, 2)
[node name="Bullet" type="Area2D"]
collision_layer = 8
collision_mask = 14
script = ExtResource("1_mkf8s")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]

View File

@ -3,16 +3,15 @@
[ext_resource type="Texture2D" uid="uid://7jy7xuy24fug" path="res://graphics/tiles/crate-100-custom.png" id="1_b66cd"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_uwrxv"]
size = Vector2(50, 50)
size = Vector2(100, 100)
[node name="Crate" type="RigidBody2D"]
[node name="LargeCrate" type="RigidBody2D"]
collision_layer = 4
collision_mask = 7
collision_mask = 15
metadata/_edit_group_ = true
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(9.536743e-07, 1.9073486e-06)
scale = Vector2(0.50000006, 0.50000006)
texture = ExtResource("1_b66cd")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]

View File

@ -39,19 +39,73 @@ texture_region_size = Vector2i(32, 32)
4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
4:0/0/terrains_peering_bit/bottom_side = 0
6:0/0 = 0
6:0/0/terrain_set = 0
6:0/0/terrain = 0
6:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
6:0/0/terrains_peering_bit/right_side = 0
6:0/0/terrains_peering_bit/bottom_side = 0
6:0/0/terrains_peering_bit/bottom_left_corner = 0
6:0/0/terrains_peering_bit/left_side = 0
6:0/0/terrains_peering_bit/top_left_corner = 0
6:0/0/terrains_peering_bit/top_side = 0
6:0/0/terrains_peering_bit/top_right_corner = 0
7:0/0 = 0
7:0/0/terrain_set = 0
7:0/0/terrain = 0
7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
7:0/0/terrains_peering_bit/right_side = 0
7:0/0/terrains_peering_bit/bottom_right_corner = 0
7:0/0/terrains_peering_bit/bottom_side = 0
7:0/0/terrains_peering_bit/left_side = 0
7:0/0/terrains_peering_bit/top_left_corner = 0
7:0/0/terrains_peering_bit/top_side = 0
7:0/0/terrains_peering_bit/top_right_corner = 0
9:0/0 = 0
9:0/0/terrain_set = 0
9:0/0/terrain = 0
9:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
9:0/0/terrains_peering_bit/right_side = 0
9:0/0/terrains_peering_bit/bottom_right_corner = 0
9:0/0/terrains_peering_bit/bottom_side = 0
9:0/0/terrains_peering_bit/bottom_left_corner = 0
9:0/0/terrains_peering_bit/left_side = 0
9:0/0/terrains_peering_bit/top_side = 0
10:0/0 = 0
10:0/0/terrain_set = 0
10:0/0/terrain = 0
10:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
10:0/0/terrains_peering_bit/right_side = 0
10:0/0/terrains_peering_bit/bottom_side = 0
10:0/0/terrains_peering_bit/bottom_left_corner = 0
10:0/0/terrains_peering_bit/left_side = 0
10:0/0/terrains_peering_bit/top_left_corner = 0
10:0/0/terrains_peering_bit/top_side = 0
12:0/0 = 0
12:0/0/terrain_set = 0
12:0/0/terrain = 0
12:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
12:0/0/terrains_peering_bit/right_side = 0
12:0/0/terrains_peering_bit/bottom_right_corner = 0
12:0/0/terrains_peering_bit/bottom_side = 0
12:0/0/terrains_peering_bit/left_side = 0
12:0/0/terrains_peering_bit/top_side = 0
13:0/0 = 0
13:0/0/terrain_set = 0
13:0/0/terrain = 0
13:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
13:0/0/terrains_peering_bit/right_side = 0
13:0/0/terrains_peering_bit/bottom_side = 0
13:0/0/terrains_peering_bit/bottom_left_corner = 0
13:0/0/terrains_peering_bit/left_side = 0
13:0/0/terrains_peering_bit/top_side = 0
15:0/0 = 0
15:0/0/terrain_set = 0
15:0/0/terrain = 0
15:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
15:0/0/terrains_peering_bit/right_side = 0
15:0/0/terrains_peering_bit/bottom_side = 0
15:0/0/terrains_peering_bit/left_side = 0
15:0/0/terrains_peering_bit/top_side = 0
0:1/0 = 0
0:1/0/terrain_set = 0
0:1/0/terrain = 0
@ -89,21 +143,85 @@ texture_region_size = Vector2i(32, 32)
4:1/0/terrains_peering_bit/bottom_side = 0
4:1/0/terrains_peering_bit/top_side = 0
6:1/0 = 0
6:1/0/terrain_set = 0
6:1/0/terrain = 0
6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
6:1/0/terrains_peering_bit/right_side = 0
6:1/0/terrains_peering_bit/bottom_right_corner = 0
6:1/0/terrains_peering_bit/bottom_side = 0
6:1/0/terrains_peering_bit/bottom_left_corner = 0
6:1/0/terrains_peering_bit/left_side = 0
6:1/0/terrains_peering_bit/top_left_corner = 0
6:1/0/terrains_peering_bit/top_side = 0
7:1/0 = 0
7:1/0/terrain_set = 0
7:1/0/terrain = 0
7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
7:1/0/terrains_peering_bit/right_side = 0
7:1/0/terrains_peering_bit/bottom_right_corner = 0
7:1/0/terrains_peering_bit/bottom_side = 0
7:1/0/terrains_peering_bit/bottom_left_corner = 0
7:1/0/terrains_peering_bit/left_side = 0
7:1/0/terrains_peering_bit/top_side = 0
7:1/0/terrains_peering_bit/top_right_corner = 0
9:1/0 = 0
9:1/0/terrain_set = 0
9:1/0/terrain = 0
9:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
9:1/0/terrains_peering_bit/right_side = 0
9:1/0/terrains_peering_bit/bottom_right_corner = 0
9:1/0/terrains_peering_bit/bottom_side = 0
9:1/0/terrains_peering_bit/left_side = 0
9:1/0/terrains_peering_bit/top_side = 0
9:1/0/terrains_peering_bit/top_right_corner = 0
10:1/0 = 0
10:1/0/terrain_set = 0
10:1/0/terrain = 0
10:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
10:1/0/terrains_peering_bit/right_side = 0
10:1/0/terrains_peering_bit/bottom_side = 0
10:1/0/terrains_peering_bit/left_side = 0
10:1/0/terrains_peering_bit/top_left_corner = 0
10:1/0/terrains_peering_bit/top_side = 0
10:1/0/terrains_peering_bit/top_right_corner = 0
12:1/0 = 0
12:1/0/terrain_set = 0
12:1/0/terrain = 0
12:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
12:1/0/terrains_peering_bit/right_side = 0
12:1/0/terrains_peering_bit/bottom_side = 0
12:1/0/terrains_peering_bit/left_side = 0
12:1/0/terrains_peering_bit/top_side = 0
12:1/0/terrains_peering_bit/top_right_corner = 0
13:1/0 = 0
13:1/0/terrain_set = 0
13:1/0/terrain = 0
13:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
13:1/0/terrains_peering_bit/right_side = 0
13:1/0/terrains_peering_bit/bottom_side = 0
13:1/0/terrains_peering_bit/left_side = 0
13:1/0/terrains_peering_bit/top_left_corner = 0
13:1/0/terrains_peering_bit/top_side = 0
15:1/0 = 0
15:1/0/terrain_set = 0
15:1/0/terrain = 0
15:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
15:1/0/terrains_peering_bit/right_side = 0
15:1/0/terrains_peering_bit/bottom_side = 0
15:1/0/terrains_peering_bit/bottom_left_corner = 0
15:1/0/terrains_peering_bit/left_side = 0
15:1/0/terrains_peering_bit/top_side = 0
15:1/0/terrains_peering_bit/top_right_corner = 0
16:1/0 = 0
16:1/0/terrain_set = 0
16:1/0/terrain = 0
16:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
16:1/0/terrains_peering_bit/right_side = 0
16:1/0/terrains_peering_bit/bottom_right_corner = 0
16:1/0/terrains_peering_bit/bottom_side = 0
16:1/0/terrains_peering_bit/left_side = 0
16:1/0/terrains_peering_bit/top_left_corner = 0
16:1/0/terrains_peering_bit/top_side = 0
0:2/0 = 0
0:2/0/terrain_set = 0
0:2/0/terrain = 0
@ -133,21 +251,63 @@ texture_region_size = Vector2i(32, 32)
4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
4:2/0/terrains_peering_bit/top_side = 0
6:3/0 = 0
6:3/0/terrain_set = 0
6:3/0/terrain = 0
6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
6:3/0/terrains_peering_bit/right_side = 0
6:3/0/terrains_peering_bit/bottom_side = 0
6:3/0/terrains_peering_bit/top_side = 0
6:3/0/terrains_peering_bit/top_right_corner = 0
7:3/0 = 0
7:3/0/terrain_set = 0
7:3/0/terrain = 0
7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
7:3/0/terrains_peering_bit/bottom_side = 0
7:3/0/terrains_peering_bit/left_side = 0
7:3/0/terrains_peering_bit/top_left_corner = 0
7:3/0/terrains_peering_bit/top_side = 0
9:3/0 = 0
9:3/0/terrain_set = 0
9:3/0/terrain = 0
9:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
9:3/0/terrains_peering_bit/right_side = 0
9:3/0/terrains_peering_bit/bottom_side = 0
9:3/0/terrains_peering_bit/bottom_left_corner = 0
9:3/0/terrains_peering_bit/left_side = 0
10:3/0 = 0
10:3/0/terrain_set = 0
10:3/0/terrain = 0
10:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
10:3/0/terrains_peering_bit/right_side = 0
10:3/0/terrains_peering_bit/bottom_right_corner = 0
10:3/0/terrains_peering_bit/bottom_side = 0
10:3/0/terrains_peering_bit/left_side = 0
12:3/0 = 0
12:3/0/terrain_set = 0
12:3/0/terrain = 0
12:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
12:3/0/terrains_peering_bit/right_side = 0
12:3/0/terrains_peering_bit/bottom_side = 0
12:3/0/terrains_peering_bit/top_side = 0
13:3/0 = 0
13:3/0/terrain_set = 0
13:3/0/terrain = 0
13:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
13:3/0/terrains_peering_bit/right_side = 0
13:3/0/terrains_peering_bit/bottom_side = 0
13:3/0/terrains_peering_bit/left_side = 0
15:3/0 = 0
15:3/0/terrain_set = 0
15:3/0/terrain = 0
15:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
15:3/0/terrains_peering_bit/right_side = 0
15:3/0/terrains_peering_bit/bottom_side = 0
16:3/0 = 0
16:3/0/terrain_set = 0
16:3/0/terrain = 0
16:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
16:3/0/terrains_peering_bit/bottom_side = 0
16:3/0/terrains_peering_bit/left_side = 0
0:4/0 = 0
0:4/0/terrain_set = 0
0:4/0/terrain = 0
@ -169,28 +329,70 @@ texture_region_size = Vector2i(32, 32)
4:4/0/terrain = 0
4:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
6:4/0 = 0
6:4/0/terrain_set = 0
6:4/0/terrain = 0
6:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
6:4/0/terrains_peering_bit/right_side = 0
6:4/0/terrains_peering_bit/bottom_right_corner = 0
6:4/0/terrains_peering_bit/bottom_side = 0
6:4/0/terrains_peering_bit/top_side = 0
7:4/0 = 0
7:4/0/terrain_set = 0
7:4/0/terrain = 0
7:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
7:4/0/terrains_peering_bit/bottom_side = 0
7:4/0/terrains_peering_bit/bottom_left_corner = 0
7:4/0/terrains_peering_bit/left_side = 0
7:4/0/terrains_peering_bit/top_side = 0
9:4/0 = 0
9:4/0/terrain_set = 0
9:4/0/terrain = 0
9:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
9:4/0/terrains_peering_bit/right_side = 0
9:4/0/terrains_peering_bit/left_side = 0
9:4/0/terrains_peering_bit/top_left_corner = 0
9:4/0/terrains_peering_bit/top_side = 0
10:4/0 = 0
10:4/0/terrain_set = 0
10:4/0/terrain = 0
10:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
10:4/0/terrains_peering_bit/right_side = 0
10:4/0/terrains_peering_bit/left_side = 0
10:4/0/terrains_peering_bit/top_side = 0
10:4/0/terrains_peering_bit/top_right_corner = 0
12:4/0 = 0
12:4/0/terrain_set = 0
12:4/0/terrain = 0
12:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
12:4/0/terrains_peering_bit/right_side = 0
12:4/0/terrains_peering_bit/left_side = 0
12:4/0/terrains_peering_bit/top_side = 0
13:4/0 = 0
13:4/0/terrain_set = 0
13:4/0/terrain = 0
13:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
13:4/0/terrains_peering_bit/bottom_side = 0
13:4/0/terrains_peering_bit/left_side = 0
13:4/0/terrains_peering_bit/top_side = 0
15:4/0 = 0
15:4/0/terrain_set = 0
15:4/0/terrain = 0
15:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
15:4/0/terrains_peering_bit/right_side = 0
15:4/0/terrains_peering_bit/top_side = 0
16:4/0 = 0
16:4/0/terrain_set = 0
16:4/0/terrain = 0
16:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
16:4/0/terrains_peering_bit/left_side = 0
16:4/0/terrains_peering_bit/top_side = 0
[sub_resource type="TileSet" id="TileSet_gee14"]
tile_size = Vector2i(32, 32)
physics_layer_0/collision_layer = 2
physics_layer_0/collision_mask = 5
physics_layer_0/collision_mask = 13
terrain_set_0/mode = 0
terrain_set_0/terrain_0/name = "Terrain 0"
terrain_set_0/terrain_0/name = "Main Terrain"
terrain_set_0/terrain_0/color = Color(0.5, 0.34375, 0.25, 1)
sources/1 = SubResource("TileSetAtlasSource_p57ef")
@ -234,7 +436,7 @@ script = ExtResource("2_iywne")
[node name="TileMapLayer" type="TileMapLayer" parent="."]
z_index = 10
position = Vector2(0, 1)
tile_map_data = PackedByteArray("AADy/wMAAQABAAAAAADy/wQAAQABAAIAAADz/wQAAQABAAIAAADz/wMAAQABAAAAAAD0/wMAAQABAAAAAAD0/wQAAQABAAIAAADx/wQAAQAAAAIAAADx/wMAAQAAAAAAAAD4/wMAAQABAAAAAAD4/wQAAQABAAIAAAD5/wQAAQABAAIAAAD6/wQAAQABAAIAAAD7/wQAAQABAAIAAAD8/wQAAQABAAIAAAD9/wQAAQABAAIAAAD+/wQAAQACAAIAAAD+/wMAAQACAAAAAAD9/wMAAQABAAAAAAD8/wMAAQABAAAAAAD7/wMAAQABAAAAAAD6/wMAAQABAAAAAAD5/wMAAQABAAAAAAABAAMAAQAAAAAAAAABAAQAAQAAAAEAAAABAAUAAQAAAAIAAAACAAUAAQABAAIAAAADAAUAAQABAAIAAAAEAAUAAQACAAIAAAAEAAQAAQACAAEAAAAEAAMAAQACAAAAAAADAAMAAQABAAAAAAACAAMAAQABAAAAAAACAAQAAQABAAEAAAADAAQAAQABAAEAAAD3/wMAAQABAAAAAAD2/wMAAQABAAAAAAD1/wMAAQABAAAAAAD1/wQAAQABAAIAAAD2/wQAAQABAAIAAAD3/wQAAQABAAIAAAAGAAIAAQAAAAAAAAAGAAMAAQAAAAEAAAAGAAQAAQAAAAEAAAAGAAUAAQAAAAIAAAAHAAUAAQABAAIAAAAIAAUAAQABAAIAAAAJAAUAAQABAAIAAAAKAAUAAQACAAIAAAAKAAQAAQACAAEAAAAKAAMAAQACAAEAAAAKAAIAAQACAAAAAAAJAAIAAQABAAAAAAAIAAIAAQABAAAAAAAHAAIAAQABAAAAAAAHAAMAAQABAAEAAAAHAAQAAQABAAEAAAAIAAQAAQABAAEAAAAJAAQAAQABAAEAAAAJAAMAAQABAAEAAAAIAAMAAQABAAEAAAAMAAEAAQAAAAAAAAAMAAIAAQAAAAEAAAAMAAMAAQAAAAEAAAAMAAQAAQAAAAEAAAANAAQAAQABAAEAAAANAAUAAQABAAIAAAAOAAUAAQABAAIAAAAPAAUAAQACAAIAAAAMAAUAAQAAAAIAAAANAAEAAQABAAAAAAAOAAEAAQABAAAAAAANAAIAAQABAAEAAAANAAMAAQABAAEAAAAOAAQAAQABAAEAAAAPAAQAAQACAAEAAAAPAAMAAQACAAEAAAAPAAIAAQACAAEAAAAPAAEAAQACAAAAAAAOAAIAAQABAAEAAAAOAAMAAQABAAEAAAARAAIAAQAAAAAAAAARAAMAAQAAAAEAAAARAAQAAQAAAAEAAAARAAUAAQAAAAIAAAASAAUAAQABAAIAAAATAAUAAQABAAIAAAAUAAUAAQABAAIAAAAVAAUAAQABAAIAAAAWAAUAAQACAAIAAAAWAAQAAQACAAEAAAAWAAMAAQACAAEAAAAVAAMAAQABAAEAAAAVAAIAAQABAAAAAAAUAAIAAQABAAAAAAATAAIAAQABAAAAAAASAAIAAQABAAAAAAASAAMAAQABAAEAAAASAAQAAQABAAEAAAATAAQAAQABAAEAAAAUAAQAAQABAAEAAAAUAAMAAQABAAEAAAATAAMAAQABAAEAAAAVAAQAAQABAAEAAAAWAAIAAQACAAAAAADz/wEAAQAAAAQAAAD0/wEAAQABAAQAAAD1/wEAAQABAAQAAAD2/wEAAQACAAQAAAD4//7/AQAAAAAAAAD5//7/AQABAAAAAAD6//7/AQABAAAAAAD7//7/AQACAAAAAAD9//v/AQAAAAAAAAD9//z/AQAAAAEAAAD9//3/AQAAAAIAAAD+//3/AQABAAIAAAD///3/AQABAAIAAAAAAP3/AQABAAIAAAAAAPz/AQABAAEAAAAAAPv/AQABAAAAAAD///v/AQABAAAAAAD+//v/AQABAAAAAAD+//z/AQABAAEAAAD///z/AQABAAEAAAABAPz/AQABAAEAAAACAPz/AQACAAEAAAACAP3/AQACAAIAAAABAP3/AQABAAIAAAABAPv/AQABAAAAAAACAPv/AQACAAAAAAD4////AQAAAAIAAAD5////AQABAAIAAAD6////AQABAAIAAAD7////AQACAAIAAAA=")
tile_map_data = PackedByteArray("AADy/wMAAQABAAEAAADy/wQAAQABAAIAAADz/wQAAQABAAIAAADz/wMAAQABAAEAAAD0/wMAAQABAAEAAAD0/wQAAQABAAIAAADx/wQAAQAAAAIAAADx/wMAAQAAAAEAAAD4/wMAAQABAAAAAAD4/wQAAQABAAIAAAD5/wQAAQABAAIAAAD6/wQAAQABAAIAAAD7/wQAAQABAAIAAAD8/wQAAQABAAIAAAD9/wQAAQABAAIAAAD+/wQAAQAHAAAAAAD+/wMAAQABAAAAAAD9/wMAAQABAAAAAAD8/wMAAQABAAAAAAD7/wMAAQABAAAAAAD6/wMAAQABAAAAAAD5/wMAAQABAAAAAAABAAMAAQABAAAAAAABAAQAAQABAAEAAAABAAUAAQABAAIAAAACAAUAAQABAAIAAAADAAUAAQABAAIAAAAEAAUAAQABAAIAAAAEAAQAAQAGAAEAAAAEAAMAAQACAAAAAAADAAMAAQABAAAAAAACAAMAAQABAAAAAAACAAQAAQABAAEAAAADAAQAAQABAAEAAAD3/wMAAQABAAAAAAD2/wMAAQAGAAEAAAD1/wMAAQABAAEAAAD1/wQAAQABAAIAAAD2/wQAAQABAAIAAAD3/wQAAQABAAIAAAAKAAIAAQABAAAAAAAJAAIAAQAAAAAAAAAJAAMAAQAAAAEAAAAMAAEAAQABAAAAAAAMAAIAAQABAAEAAAAMAAMAAQABAAEAAAAMAAQAAQABAAEAAAANAAQAAQABAAEAAAANAAUAAQABAAIAAAAOAAUAAQABAAIAAAAPAAUAAQABAAIAAAAMAAUAAQABAAIAAAANAAEAAQABAAAAAAAOAAEAAQABAAAAAAANAAIAAQABAAEAAAANAAMAAQABAAEAAAAOAAQAAQABAAEAAAAPAAQAAQABAAEAAAAPAAMAAQABAAEAAAAPAAIAAQAGAAEAAAAPAAEAAQACAAAAAAAOAAIAAQABAAEAAAAOAAMAAQABAAEAAAARAAIAAQABAAAAAAARAAMAAQABAAEAAAARAAQAAQABAAEAAAARAAUAAQABAAIAAAASAAUAAQABAAIAAAATAAUAAQABAAIAAAAUAAUAAQABAAIAAAAVAAUAAQABAAIAAAAWAAUAAQABAAIAAAAWAAQAAQABAAEAAAAWAAMAAQAGAAEAAAAVAAMAAQABAAEAAAAVAAIAAQABAAAAAAAUAAIAAQABAAAAAAATAAIAAQABAAAAAAASAAIAAQABAAAAAAASAAMAAQABAAEAAAASAAQAAQABAAEAAAATAAQAAQABAAEAAAAUAAQAAQABAAEAAAAUAAMAAQABAAEAAAATAAMAAQABAAEAAAAVAAQAAQABAAEAAAAWAAIAAQACAAAAAAD4//7/AQABAAQAAAD5//7/AQAKAAMAAAD6//7/AQAHAAEAAAD7//7/AQACAAEAAAD9//3/AQAKAAQAAAD+//3/AQABAAIAAAD///3/AQABAAIAAAAAAP3/AQABAAIAAAAAAPz/AQABAAAAAAD+//z/AQABAAAAAAD///z/AQABAAAAAAACAP3/AQACAAQAAAABAP3/AQAJAAQAAAD5////AQAAAAIAAAD6////AQABAAIAAAD7////AQACAAIAAADx////AQAAAAAAAADy////AQABAAAAAADz////AQACAAAAAADx/wAAAQAAAAEAAADx/wEAAQAAAAEAAADy/wEAAQABAAEAAADz/wEAAQAGAAEAAADz/wAAAQACAAEAAADy/wAAAQABAAEAAADx/wIAAQAAAAEAAADy/wIAAQABAAEAAADz/wIAAQABAAEAAAD0/wIAAQABAAEAAAD1/wIAAQAGAAEAAAD2/wIAAQACAAAAAAD3//7/AQAAAAQAAAD6//3/AQAAAAAAAAD7//3/AQAJAAMAAAABAPz/AQACAAAAAAD9//z/AQAAAAAAAAD8//3/AQABAAQAAAAHAAQAAQABAAAAAAAGAAQAAQABAAAAAAAFAAQAAQABAAAAAAALAAIAAQAHAAEAAAAQAAIAAQABAAAAAAAQAAMAAQABAAEAAAAQAAQAAQABAAEAAAAQAAUAAQABAAIAAAALAAMAAQABAAEAAAAKAAMAAQABAAEAAAAKAAQAAQABAAEAAAAKAAUAAQABAAIAAAAJAAUAAQABAAIAAAAJAAQAAQAHAAEAAAAIAAQAAQABAAAAAAAGAAUAAQABAAIAAAAFAAUAAQABAAIAAAAHAAUAAQABAAIAAAAIAAUAAQABAAIAAAALAAUAAQABAAIAAAALAAQAAQABAAEAAAAAAAQAAQABAAEAAAD//wQAAQABAAEAAAD+/wUAAQAAAAIAAAD//wUAAQABAAIAAAAAAAUAAQABAAIAAAD//wMAAQABAAAAAAAAAAMAAQABAAAAAAALAAEAAQAAAAAAAAD0/wEAAQABAAAAAAD1/wEAAQACAAAAAAALAPv/AQAAAAAAAAALAPz/AQAAAAEAAAALAP3/AQAAAAIAAAAMAPz/AQABAAEAAAANAPz/AQABAAEAAAAOAPz/AQABAAEAAAAOAPv/AQABAAAAAAANAPv/AQABAAAAAAAMAPv/AQABAAAAAAAMAP3/AQABAAIAAAANAP3/AQABAAIAAAAOAP3/AQABAAIAAAAPAPz/AQACAAEAAAAPAPv/AQACAAAAAAAPAP3/AQACAAIAAAAYAAMAAQACAAAAAAAXAAMAAQABAAAAAAAXAAQAAQABAAEAAAAXAAUAAQABAAIAAAAYAAUAAQACAAIAAAAYAAQAAQACAAEAAAAGAP3/AQAAAAQAAAAHAP3/AQACAAQAAAA=")
tile_set = SubResource("TileSet_gee14")
[node name="Background" type="Parallax2D" parent="."]
@ -263,13 +465,13 @@ texture = SubResource("NoiseTexture2D_iywne")
z_index = 100
position = Vector2(-201, 51)
[node name="Boundary" type="StaticBody2D" parent="."]
position = Vector2(0, 180)
[node name="WorldBoundary" type="Area2D" parent="."]
position = Vector2(0, 360)
collision_layer = 2
collision_mask = 5
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="Boundary"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="WorldBoundary"]
shape = SubResource("WorldBoundaryShape2D_8cj0n")
debug_color = Color(0, 0.50980395, 0.003921569, 1)
@ -282,14 +484,15 @@ position = Vector2(532.00006, 62)
scale = Vector2(0.5942757, 0.5465749)
intent = "powerup"
[node name="Crate" parent="." groups=["explodable", "pushable"] instance=ExtResource("1_uwrxv")]
position = Vector2(-78, 45)
[node name="LargeCrate" parent="." groups=["explodable", "pushable"] instance=ExtResource("1_uwrxv")]
position = Vector2(-10, -211)
[node name="Crate2" parent="." groups=["explodable", "pushable"] instance=ExtResource("1_uwrxv")]
position = Vector2(630, 9)
[node name="LargeCrate2" parent="." groups=["explodable", "pushable"] instance=ExtResource("1_uwrxv")]
position = Vector2(436, -220)
[node name="Crate3" parent="." groups=["explodable", "pushable"] instance=ExtResource("1_uwrxv")]
position = Vector2(269, 0)
[node name="LargeCrate3" parent="." groups=["explodable", "pushable"] instance=ExtResource("1_uwrxv")]
position = Vector2(669, -2)
[connection signal="body_entered" from="WorldBoundary" to="SceneManager" method="_on_world_boundary_body_entered"]
[connection signal="trigger_fired" from="Trigger" to="." method="_on_trigger_fired"]
[connection signal="trigger_fired" from="Trigger2" to="." method="_on_trigger_fired"]

View File

@ -240,8 +240,9 @@ animations = [{
}]
[node name="Grenade" type="RigidBody2D"]
collision_layer = 4
collision_mask = 7
collision_layer = 8
collision_mask = 14
mass = 0.001
contact_monitor = true
max_contacts_reported = 2
script = ExtResource("1_cvyik")

View File

@ -313,7 +313,6 @@ animations = [{
[node name="Player" type="CharacterBody2D"]
collision_mask = 6
script = ExtResource("1_3vyb7")
BUMP_POWER = 200
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]

View File

@ -15,12 +15,15 @@ func _ready() -> void:
func explode() -> void:
print("kaboom!")
set_deferred("freeze", true)
sprite_2d.visible = false
animated_sprite_2d.play("explode")
await animated_sprite_2d.animation_finished
self.queue_free()
func _on_body_entered(body: Node) -> void:
if body is Player:
print("grenade hit player")
print("grenade hit something")
if body.is_in_group("explodable"):
body.queue_free()

View File

@ -3,14 +3,14 @@ class_name Player extends CharacterBody2D
## TODO: fix bullet cooldown timer
const SPEED = 200.0
const JUMP_VELOCITY = -350.0
const JUMP_VELOCITY = -500.0
enum FaceDirection{LEFT, RIGHT}
enum State{IDLE, WALK, JUMP, FALLING, SHOOT_STILL, SHOOT_RUN}
@export var BUMP_POWER := 50
@export var SHOVE_POWER := 300
@export var ACCELERATION := 4
@export var ACCELERATION := 10 ## Amount of "slide-y-ness" in side-to-side-movement
@export var HARD_GRAVITY := 2
var current_state: State = State.IDLE
@ -122,7 +122,7 @@ func handle_collisions() -> void:
for i in get_slide_collision_count():
var c = get_slide_collision(i)
if c.get_collider() is RigidBody2D:
if c.get_collider() is RigidBody2D and c.get_collider() is not Grenade:
c.get_collider().apply_central_impulse(-c.get_normal() * BUMP_POWER)
if right_cast.is_colliding() and facing == FaceDirection.RIGHT:

View File

@ -31,3 +31,9 @@ func bullet_factory() -> Bullet:
my_bullet = bullet_array.pop_back()
bullet_array.push_front(my_bullet)
return my_bullet
func _on_world_boundary_body_entered(body: Node2D) -> void:
if body is Player:
var current_scene = get_tree()
current_scene.call_deferred("reload_current_scene")