diff --git a/graphics/effects/14.png b/graphics/effects/14.png new file mode 100644 index 0000000..2778092 Binary files /dev/null and b/graphics/effects/14.png differ diff --git a/graphics/effects/14.png.import b/graphics/effects/14.png.import new file mode 100644 index 0000000..38017d9 --- /dev/null +++ b/graphics/effects/14.png.import @@ -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 diff --git a/graphics/effects/explosion.png b/graphics/effects/explosion.png new file mode 100644 index 0000000..b27652e Binary files /dev/null and b/graphics/effects/explosion.png differ diff --git a/graphics/effects/explosion.png.import b/graphics/effects/explosion.png.import new file mode 100644 index 0000000..6fc2947 --- /dev/null +++ b/graphics/effects/explosion.png.import @@ -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 diff --git a/graphics/effects/orb_red.png b/graphics/effects/orb_red.png new file mode 100644 index 0000000..7e5d41f Binary files /dev/null and b/graphics/effects/orb_red.png differ diff --git a/graphics/effects/orb_red.png.import b/graphics/effects/orb_red.png.import new file mode 100644 index 0000000..7d5eabe --- /dev/null +++ b/graphics/effects/orb_red.png.import @@ -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 diff --git a/project.godot b/project.godot index 21db884..a2e70fd 100644 --- a/project.godot +++ b/project.godot @@ -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 diff --git a/scenes/bullet.tscn b/scenes/bullet.tscn index eff2c8d..5f9fdd5 100644 --- a/scenes/bullet.tscn +++ b/scenes/bullet.tscn @@ -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") diff --git a/scenes/crate.tscn b/scenes/crate.tscn index 096c86d..e64dc02 100644 --- a/scenes/crate.tscn +++ b/scenes/crate.tscn @@ -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="."] diff --git a/scenes/game.tscn b/scenes/game.tscn index 0ca5d68..14fb39e 100644 --- a/scenes/game.tscn +++ b/scenes/game.tscn @@ -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"] diff --git a/scenes/grenade.tscn b/scenes/grenade.tscn index 4d99f2a..0dade6d 100644 --- a/scenes/grenade.tscn +++ b/scenes/grenade.tscn @@ -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"] diff --git a/scenes/player.tscn b/scenes/player.tscn index ebf7a43..1fec3d2 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -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) diff --git a/scripts/grenade.gd b/scripts/grenade.gd index 64e86f9..78591de 100644 --- a/scripts/grenade.gd +++ b/scripts/grenade.gd @@ -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: