added sprites for grenade and bullet; tilemap with collisions; explosion effect

This commit is contained in:
Adam Burns 2025-10-24 21:57:19 -04:00
parent ec743da5ba
commit 1c2cb39425
13 changed files with 603 additions and 64 deletions

BIN
graphics/effects/14.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://rejfd2gqjk7w"
path="res://.godot/imported/14.png-b80bda9481eb03b9296615b658f23b86.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://graphics/effects/14.png"
dest_files=["res://.godot/imported/14.png-b80bda9481eb03b9296615b658f23b86.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

View File

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dnhgsb5qqmrmr"
path="res://.godot/imported/explosion.png-67838f4909472368e8b1165eafa79d8a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://graphics/effects/explosion.png"
dest_files=["res://.godot/imported/explosion.png-67838f4909472368e8b1165eafa79d8a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 B

View File

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b8g3n1anbx0j"
path="res://.godot/imported/orb_red.png-96d2144e68a7a46da9f571d0443165d8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://graphics/effects/orb_red.png"
dest_files=["res://.godot/imported/orb_red.png-96d2144e68a7a46da9f571d0443165d8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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

View File

@ -79,6 +79,12 @@ throw={
]
}
[layer_names]
2d_physics/layer_1="player"
2d_physics/layer_2="environment"
2d_physics/layer_3="objects"
[rendering]
textures/canvas_textures/default_texture_filter=0

View File

@ -1,13 +1,19 @@
[gd_scene load_steps=3 format=3 uid="uid://cyy6jr7mxu0jl"]
[gd_scene load_steps=4 format=3 uid="uid://cyy6jr7mxu0jl"]
[ext_resource type="Script" uid="uid://cb874g2gkrukb" path="res://scripts/bullet.gd" id="1_mkf8s"]
[ext_resource type="Texture2D" uid="uid://rejfd2gqjk7w" path="res://graphics/effects/14.png" id="2_y25gk"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_h1aey"]
size = Vector2(20, 3)
size = Vector2(16, 2)
[node name="Bullet" type="Area2D"]
script = ExtResource("1_mkf8s")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-1, 0)
shape = SubResource("RectangleShape2D_h1aey")
debug_color = Color(1, 0, 0, 1)
[node name="Sprite2D" type="Sprite2D" parent="."]
scale = Vector2(0.1, 0.1)
texture = ExtResource("2_y25gk")

View File

@ -6,6 +6,8 @@
size = Vector2(50, 50)
[node name="Crate" type="RigidBody2D"]
collision_layer = 4
collision_mask = 7
metadata/_edit_group_ = true
[node name="Sprite2D" type="Sprite2D" parent="."]

View File

@ -1,10 +1,198 @@
[gd_scene load_steps=14 format=3 uid="uid://cueixogtk70go"]
[gd_scene load_steps=16 format=4 uid="uid://cueixogtk70go"]
[ext_resource type="Script" uid="uid://d0ca3jbhe8le3" path="res://scripts/game_controller.gd" id="1_lbhrr"]
[ext_resource type="PackedScene" uid="uid://dnarbab7jjqmk" path="res://scenes/crate.tscn" id="1_uwrxv"]
[ext_resource type="Script" uid="uid://b84pdw14l6gb6" path="res://scripts/scene_manager.gd" id="2_iywne"]
[ext_resource type="PackedScene" uid="uid://2pp1gtlflav8" path="res://scenes/trigger.tscn" id="2_yqjtg"]
[ext_resource type="PackedScene" uid="uid://d3y1iqmpknpyo" path="res://scenes/player.tscn" id="3_lnu2h"]
[ext_resource type="Texture2D" uid="uid://cf3dxavo2u8yg" path="res://graphics/tiles/25-10-18-godot-course-Terrain (32x32).png" id="3_p57ef"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_p57ef"]
texture = ExtResource("3_p57ef")
texture_region_size = Vector2i(32, 32)
0:0/0 = 0
0:0/0/terrain_set = 0
0:0/0/terrain = 0
0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
0:0/0/terrains_peering_bit/right_side = 0
0:0/0/terrains_peering_bit/bottom_right_corner = 0
0:0/0/terrains_peering_bit/bottom_side = 0
1:0/0 = 0
1:0/0/terrain_set = 0
1:0/0/terrain = 0
1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
1:0/0/terrains_peering_bit/right_side = 0
1:0/0/terrains_peering_bit/bottom_right_corner = 0
1:0/0/terrains_peering_bit/bottom_side = 0
1:0/0/terrains_peering_bit/bottom_left_corner = 0
1:0/0/terrains_peering_bit/left_side = 0
2:0/0 = 0
2:0/0/terrain_set = 0
2:0/0/terrain = 0
2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
2:0/0/terrains_peering_bit/bottom_side = 0
2:0/0/terrains_peering_bit/bottom_left_corner = 0
2:0/0/terrains_peering_bit/left_side = 0
4:0/0 = 0
4:0/0/terrain_set = 0
4:0/0/terrain = 0
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/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
7:0/0 = 0
7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
9:0/0 = 0
9:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
10:0/0 = 0
10:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
12:0/0 = 0
12:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
13:0/0 = 0
13:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
15:0/0 = 0
15:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
0:1/0 = 0
0:1/0/terrain_set = 0
0:1/0/terrain = 0
0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
0:1/0/terrains_peering_bit/right_side = 0
0:1/0/terrains_peering_bit/bottom_right_corner = 0
0:1/0/terrains_peering_bit/bottom_side = 0
0:1/0/terrains_peering_bit/top_side = 0
0:1/0/terrains_peering_bit/top_right_corner = 0
1:1/0 = 0
1:1/0/terrain_set = 0
1:1/0/terrain = 0
1:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
1:1/0/terrains_peering_bit/right_side = 0
1:1/0/terrains_peering_bit/bottom_right_corner = 0
1:1/0/terrains_peering_bit/bottom_side = 0
1:1/0/terrains_peering_bit/bottom_left_corner = 0
1:1/0/terrains_peering_bit/left_side = 0
1:1/0/terrains_peering_bit/top_left_corner = 0
1:1/0/terrains_peering_bit/top_side = 0
1:1/0/terrains_peering_bit/top_right_corner = 0
2:1/0 = 0
2:1/0/terrain_set = 0
2:1/0/terrain = 0
2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
2:1/0/terrains_peering_bit/bottom_side = 0
2:1/0/terrains_peering_bit/bottom_left_corner = 0
2:1/0/terrains_peering_bit/left_side = 0
2:1/0/terrains_peering_bit/top_left_corner = 0
2:1/0/terrains_peering_bit/top_side = 0
4:1/0 = 0
4:1/0/terrain_set = 0
4:1/0/terrain = 0
4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
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/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
7:1/0 = 0
7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
9:1/0 = 0
9:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
10:1/0 = 0
10:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
12:1/0 = 0
12:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
13:1/0 = 0
13:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
15:1/0 = 0
15:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
16:1/0 = 0
16:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
0:2/0 = 0
0:2/0/terrain_set = 0
0:2/0/terrain = 0
0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
0:2/0/terrains_peering_bit/right_side = 0
0:2/0/terrains_peering_bit/top_side = 0
0:2/0/terrains_peering_bit/top_right_corner = 0
1:2/0 = 0
1:2/0/terrain_set = 0
1:2/0/terrain = 0
1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
1:2/0/terrains_peering_bit/right_side = 0
1:2/0/terrains_peering_bit/left_side = 0
1:2/0/terrains_peering_bit/top_left_corner = 0
1:2/0/terrains_peering_bit/top_side = 0
1:2/0/terrains_peering_bit/top_right_corner = 0
2:2/0 = 0
2:2/0/terrain_set = 0
2:2/0/terrain = 0
2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
2:2/0/terrains_peering_bit/left_side = 0
2:2/0/terrains_peering_bit/top_left_corner = 0
2:2/0/terrains_peering_bit/top_side = 0
4:2/0 = 0
4:2/0/terrain_set = 0
4:2/0/terrain = 0
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/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
7:3/0 = 0
7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
9:3/0 = 0
9:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
10:3/0 = 0
10:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
12:3/0 = 0
12:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
13:3/0 = 0
13:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
15:3/0 = 0
15:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
16:3/0 = 0
16:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
0:4/0 = 0
0:4/0/terrain_set = 0
0:4/0/terrain = 0
0:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
0:4/0/terrains_peering_bit/right_side = 0
1:4/0 = 0
1:4/0/terrain_set = 0
1:4/0/terrain = 0
1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
1:4/0/terrains_peering_bit/right_side = 0
1:4/0/terrains_peering_bit/left_side = 0
2:4/0 = 0
2:4/0/terrain_set = 0
2:4/0/terrain = 0
2:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
2:4/0/terrains_peering_bit/left_side = 0
4:4/0 = 0
4:4/0/terrain_set = 0
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/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
7:4/0 = 0
7:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
9:4/0 = 0
9:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
10:4/0 = 0
10:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
12:4/0 = 0
12:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
13:4/0 = 0
13:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
15:4/0 = 0
15:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
16:4/0 = 0
16:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
[sub_resource type="TileSet" id="TileSet_gee14"]
tile_size = Vector2i(32, 32)
physics_layer_0/collision_layer = 2
physics_layer_0/collision_mask = 5
terrain_set_0/mode = 0
terrain_set_0/terrain_0/name = "Terrain 0"
terrain_set_0/terrain_0/color = Color(0.5, 0.34375, 0.25, 1)
sources/1 = SubResource("TileSetAtlasSource_p57ef")
[sub_resource type="Gradient" id="Gradient_iywne"]
offsets = PackedFloat32Array(0.20666666, 0.66, 0.96666664)
@ -34,9 +222,6 @@ noise = SubResource("FastNoiseLite_u5sy4")
color_ramp = SubResource("Gradient_p57ef")
seamless = true
[sub_resource type="RectangleShape2D" id="RectangleShape2D_8cj0n"]
size = Vector2(273, 101)
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_8cj0n"]
[node name="Game" type="Node2D"]
@ -46,7 +231,14 @@ script = ExtResource("1_lbhrr")
unique_name_in_owner = true
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_set = SubResource("TileSet_gee14")
[node name="Background" type="Parallax2D" parent="."]
z_index = -100
scroll_scale = Vector2(0.5, 0.5)
repeat_size = Vector2(512, 512)
repeat_times = 100
@ -56,66 +248,25 @@ metadata/_edit_group_ = true
[node name="BackgroundSprite" type="Sprite2D" parent="Background"]
texture = SubResource("NoiseTexture2D_u5sy4")
[node name="Midground" type="Parallax2D" parent="."]
[node name="Foreground" type="Parallax2D" parent="."]
z_index = 10
repeat_size = Vector2(512, 512)
autoscroll = Vector2(-20, 0)
repeat_times = 100
metadata/_edit_group_ = true
metadata/_edit_lock_ = true
[node name="MidgroundSprite" type="Sprite2D" parent="Midground"]
[node name="ForegroundSprite" type="Sprite2D" parent="Foreground"]
texture = SubResource("NoiseTexture2D_iywne")
[node name="Player" parent="." instance=ExtResource("3_lnu2h")]
position = Vector2(-201, 84)
[node name="Block" type="StaticBody2D" parent="."]
position = Vector2(-133, 124.999985)
scale = Vector2(0.7200012, 0.39999938)
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="Block"]
shape = SubResource("RectangleShape2D_8cj0n")
debug_color = Color(0.48, 0.48, 0.48, 1)
[node name="Block2" type="StaticBody2D" parent="."]
position = Vector2(111.00002, 123)
scale = Vector2(0.877356, 0.36431184)
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="Block2"]
shape = SubResource("RectangleShape2D_8cj0n")
debug_color = Color(0.48, 0.48, 0.48, 1)
[node name="Block3" type="StaticBody2D" parent="."]
position = Vector2(306.99997, 114.00001)
scale = Vector2(0.39041698, 0.5632845)
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="Block3"]
shape = SubResource("RectangleShape2D_8cj0n")
debug_color = Color(0.48, 0.48, 0.48, 1)
[node name="Block4" type="StaticBody2D" parent="."]
position = Vector2(573.00006, 123.99999)
rotation = -1.5707964
scale = Vector2(0.39041698, 1.1232846)
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="Block4"]
shape = SubResource("RectangleShape2D_8cj0n")
debug_color = Color(0.48, 0.48, 0.48, 1)
[node name="Block5" type="StaticBody2D" parent="."]
position = Vector2(429, 144)
scale = Vector2(0.36505565, 0.38472003)
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="Block5"]
shape = SubResource("RectangleShape2D_8cj0n")
debug_color = Color(0.48, 0.48, 0.48, 1)
z_index = 100
position = Vector2(-201, 51)
[node name="Boundary" type="StaticBody2D" parent="."]
position = Vector2(0, 180)
collision_layer = 2
collision_mask = 5
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="Boundary"]
@ -132,13 +283,13 @@ scale = Vector2(0.5942757, 0.5465749)
intent = "powerup"
[node name="Crate" parent="." groups=["explodable", "pushable"] instance=ExtResource("1_uwrxv")]
position = Vector2(-75, 78)
position = Vector2(-78, 45)
[node name="Crate2" parent="." groups=["explodable", "pushable"] instance=ExtResource("1_uwrxv")]
position = Vector2(574, 24.000027)
position = Vector2(630, 9)
[node name="Crate3" parent="." groups=["explodable", "pushable"] instance=ExtResource("1_uwrxv")]
position = Vector2(293, 56)
position = Vector2(269, 0)
[connection signal="trigger_fired" from="Trigger" to="." method="_on_trigger_fired"]
[connection signal="trigger_fired" from="Trigger2" to="." method="_on_trigger_fired"]

View File

@ -1,16 +1,261 @@
[gd_scene load_steps=3 format=3 uid="uid://x8y4fkj6fc2e"]
[gd_scene load_steps=38 format=3 uid="uid://x8y4fkj6fc2e"]
[ext_resource type="Script" uid="uid://cevjj6wpr5f8f" path="res://scripts/grenade.gd" id="1_cvyik"]
[ext_resource type="Texture2D" uid="uid://b8g3n1anbx0j" path="res://graphics/effects/orb_red.png" id="2_wxtds"]
[ext_resource type="Texture2D" uid="uid://dnhgsb5qqmrmr" path="res://graphics/effects/explosion.png" id="3_vhiwl"]
[sub_resource type="CircleShape2D" id="CircleShape2D_1xt3t"]
radius = 12.0
[sub_resource type="AtlasTexture" id="AtlasTexture_6xeml"]
atlas = ExtResource("3_vhiwl")
region = Rect2(448, 192, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_76ndk"]
atlas = ExtResource("3_vhiwl")
region = Rect2(0, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_snp8f"]
atlas = ExtResource("3_vhiwl")
region = Rect2(64, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_t0o0f"]
atlas = ExtResource("3_vhiwl")
region = Rect2(128, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_adlig"]
atlas = ExtResource("3_vhiwl")
region = Rect2(192, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_3xmyn"]
atlas = ExtResource("3_vhiwl")
region = Rect2(256, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_aw7j6"]
atlas = ExtResource("3_vhiwl")
region = Rect2(320, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_w6nk6"]
atlas = ExtResource("3_vhiwl")
region = Rect2(384, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_enph7"]
atlas = ExtResource("3_vhiwl")
region = Rect2(448, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_qj1y5"]
atlas = ExtResource("3_vhiwl")
region = Rect2(0, 64, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_p88er"]
atlas = ExtResource("3_vhiwl")
region = Rect2(64, 64, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_g2dys"]
atlas = ExtResource("3_vhiwl")
region = Rect2(128, 64, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_u1ydx"]
atlas = ExtResource("3_vhiwl")
region = Rect2(192, 64, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_gd6t7"]
atlas = ExtResource("3_vhiwl")
region = Rect2(256, 64, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_bpfxd"]
atlas = ExtResource("3_vhiwl")
region = Rect2(320, 64, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_uk07r"]
atlas = ExtResource("3_vhiwl")
region = Rect2(384, 64, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_cmp73"]
atlas = ExtResource("3_vhiwl")
region = Rect2(448, 64, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_apdl7"]
atlas = ExtResource("3_vhiwl")
region = Rect2(0, 128, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_okstn"]
atlas = ExtResource("3_vhiwl")
region = Rect2(64, 128, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_0su16"]
atlas = ExtResource("3_vhiwl")
region = Rect2(128, 128, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_7763c"]
atlas = ExtResource("3_vhiwl")
region = Rect2(192, 128, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_cfpe2"]
atlas = ExtResource("3_vhiwl")
region = Rect2(256, 128, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_yibsa"]
atlas = ExtResource("3_vhiwl")
region = Rect2(320, 128, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_voalo"]
atlas = ExtResource("3_vhiwl")
region = Rect2(384, 128, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_178lq"]
atlas = ExtResource("3_vhiwl")
region = Rect2(448, 128, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_mkj0l"]
atlas = ExtResource("3_vhiwl")
region = Rect2(0, 192, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_r5ebx"]
atlas = ExtResource("3_vhiwl")
region = Rect2(64, 192, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_2vejf"]
atlas = ExtResource("3_vhiwl")
region = Rect2(128, 192, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_vbgia"]
atlas = ExtResource("3_vhiwl")
region = Rect2(192, 192, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_dmkfu"]
atlas = ExtResource("3_vhiwl")
region = Rect2(256, 192, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_gvnof"]
atlas = ExtResource("3_vhiwl")
region = Rect2(320, 192, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_k432l"]
atlas = ExtResource("3_vhiwl")
region = Rect2(384, 192, 64, 64)
[sub_resource type="SpriteFrames" id="SpriteFrames_1exwd"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_6xeml")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_76ndk")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_snp8f")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_t0o0f")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_adlig")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_3xmyn")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_aw7j6")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_w6nk6")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_enph7")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_qj1y5")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_p88er")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_g2dys")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_u1ydx")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_gd6t7")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_bpfxd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_uk07r")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_cmp73")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_apdl7")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_okstn")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_0su16")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7763c")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_cfpe2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_yibsa")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_voalo")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_178lq")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_mkj0l")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_r5ebx")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_2vejf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_vbgia")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dmkfu")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_gvnof")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_k432l")
}],
"loop": false,
"name": &"explode",
"speed": 24.0
}]
[node name="Grenade" type="RigidBody2D"]
collision_layer = 4
collision_mask = 7
contact_monitor = true
max_contacts_reported = 2
script = ExtResource("1_cvyik")
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("2_wxtds")
offset = Vector2(0.37, 0.39)
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_1xt3t")
debug_color = Color(0.7488965, 0.6246863, 1.92523e-07, 1)
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_1exwd")
animation = &"explode"
[connection signal="body_entered" from="." to="." method="_on_body_entered"]

View File

@ -1,11 +1,11 @@
[gd_scene load_steps=47 format=3 uid="uid://d3y1iqmpknpyo"]
[ext_resource type="Script" uid="uid://d3hp5rjoph7hg" path="res://scripts/player.gd" id="1_3vyb7"]
[ext_resource type="Texture2D" uid="uid://dr3rp5hv7rexv" path="res://graphics/player_idle/Player Idle 48x48.png" id="2_g2els"]
[ext_resource type="Texture2D" uid="uid://uxdt2cgxicmt" path="res://graphics/player_jump/player jump 48x48.png" id="3_dqkch"]
[ext_resource type="Texture2D" uid="uid://bgp8oow6hgh5o" path="res://graphics/player_run/player run 48x48.png" id="4_qlg0r"]
[ext_resource type="Texture2D" uid="uid://dadvc8tsvmkb6" path="res://graphics/player_shoot/Player Running Shooting 48x48.png" id="5_tuyoq"]
[ext_resource type="Texture2D" uid="uid://crll0t2wjtsly" path="res://graphics/player_shoot/player shoot 2H 48x48.png" id="6_fjrip"]
[ext_resource type="Texture2D" uid="uid://dr3rp5hv7rexv" path="res://graphics/animations/player_idle/Player Idle 48x48.png" id="2_g2els"]
[ext_resource type="Texture2D" uid="uid://uxdt2cgxicmt" path="res://graphics/animations/player_jump/player jump 48x48.png" id="3_dqkch"]
[ext_resource type="Texture2D" uid="uid://bgp8oow6hgh5o" path="res://graphics/animations/player_run/player run 48x48.png" id="4_qlg0r"]
[ext_resource type="Texture2D" uid="uid://dadvc8tsvmkb6" path="res://graphics/animations/player_shoot/Player Running Shooting 48x48.png" id="5_tuyoq"]
[ext_resource type="Texture2D" uid="uid://crll0t2wjtsly" path="res://graphics/animations/player_shoot/player shoot 2H 48x48.png" id="6_fjrip"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_3vyb7"]
radius = 6.0
@ -311,6 +311,7 @@ animations = [{
}]
[node name="Player" type="CharacterBody2D"]
collision_mask = 6
script = ExtResource("1_3vyb7")
BUMP_POWER = 200
metadata/_edit_group_ = true
@ -321,9 +322,11 @@ debug_color = Color(0.52156866, 0.57254905, 0, 1)
[node name="RightCast" type="RayCast2D" parent="."]
target_position = Vector2(50, 0)
collision_mask = 6
[node name="LeftCast" type="RayCast2D" parent="."]
target_position = Vector2(-50, 0)
collision_mask = 6
[node name="RightSpawn" type="Marker2D" parent="."]
position = Vector2(16, -7)

View File

@ -3,6 +3,9 @@ extends RigidBody2D
var timer = Timer.new()
@onready var animated_sprite_2d: AnimatedSprite2D = $AnimatedSprite2D
@onready var sprite_2d: Sprite2D = $Sprite2D
func _ready() -> void:
add_child(timer)
timer.wait_time = 2.0
@ -12,6 +15,9 @@ func _ready() -> void:
func explode() -> void:
print("kaboom!")
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: