multi levels, collectibles, enemies, started player damage or death

This commit is contained in:
OddlyTimbot 2025-05-12 20:55:34 -04:00
parent 54f9fda72e
commit 7f787903b7
18 changed files with 1460 additions and 39 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c0gn8vjhctf7v"
path="res://.godot/imported/coin.png-20c0ec177f21de2ef8f2f0e70fa6fe8a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/collectibles/coin.png"
dest_files=["res://.godot/imported/coin.png-20c0ec177f21de2ef8f2f0e70fa6fe8a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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: 908 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bc5qrj3rg2rey"
path="res://.godot/imported/slime_green.png-5261ffd1254c816fe62b35227a9aa11d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/enemies/slime_green.png"
dest_files=["res://.godot/imported/slime_green.png-5261ffd1254c816fe62b35227a9aa11d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

@ -15,6 +15,10 @@ run/main_scene="res://scenes/game.tscn"
config/features=PackedStringArray("4.4", "Forward Plus")
config/icon="res://icon.svg"
[autoload]
Gamecontroller="*res://scripts/gamecontroller.gd"
[display]
window/size/viewport_width=320

112
scenes/coin.tscn Normal file
View File

@ -0,0 +1,112 @@
[gd_scene load_steps=17 format=3 uid="uid://c0b4iaixh56in"]
[ext_resource type="Script" uid="uid://cp61o6khv0k24" path="res://scripts/coin.gd" id="1_i64fm"]
[ext_resource type="Texture2D" uid="uid://c0gn8vjhctf7v" path="res://assets/graphics/collectibles/coin.png" id="1_rwqht"]
[sub_resource type="AtlasTexture" id="AtlasTexture_i64fm"]
atlas = ExtResource("1_rwqht")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_11l1o"]
atlas = ExtResource("1_rwqht")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_d14el"]
atlas = ExtResource("1_rwqht")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_1ikuy"]
atlas = ExtResource("1_rwqht")
region = Rect2(48, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_wnlwo"]
atlas = ExtResource("1_rwqht")
region = Rect2(64, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_jig8b"]
atlas = ExtResource("1_rwqht")
region = Rect2(80, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_xmuha"]
atlas = ExtResource("1_rwqht")
region = Rect2(96, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_kfxoj"]
atlas = ExtResource("1_rwqht")
region = Rect2(112, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_jsmju"]
atlas = ExtResource("1_rwqht")
region = Rect2(128, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_s0mny"]
atlas = ExtResource("1_rwqht")
region = Rect2(144, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_7cc30"]
atlas = ExtResource("1_rwqht")
region = Rect2(160, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_rojmm"]
atlas = ExtResource("1_rwqht")
region = Rect2(176, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_ls27i"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_i64fm")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_11l1o")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_d14el")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_1ikuy")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_wnlwo")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jig8b")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_xmuha")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_kfxoj")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jsmju")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_s0mny")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7cc30")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_rojmm")
}],
"loop": true,
"name": &"default",
"speed": 12.0
}]
[sub_resource type="CircleShape2D" id="CircleShape2D_ssuvv"]
radius = 5.0
[node name="Area2D" type="Area2D"]
script = ExtResource("1_i64fm")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
texture_filter = 1
sprite_frames = SubResource("SpriteFrames_ls27i")
autoplay = "default"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_ssuvv")
[connection signal="body_entered" from="." to="." method="_on_body_entered"]

View File

@ -1,6 +1,5 @@
[gd_scene load_steps=20 format=4 uid="uid://cwuxdg5c8ylmp"]
[ext_resource type="Script" uid="uid://cw3ucen7ivcu3" path="res://scripts/gamecontroller.gd" id="1_wj22x"]
[ext_resource type="Script" uid="uid://bus3b1g717jlm" path="res://scripts/scene_manager.gd" id="2_lbhrr"]
[ext_resource type="PackedScene" uid="uid://cgk1d1f5ffbbd" path="res://scenes/player.tscn" id="2_lnu2h"]
[ext_resource type="PackedScene" uid="uid://clf5mhteceas4" path="res://scenes/trigger.tscn" id="3_jlag1"]
@ -12,7 +11,8 @@
[ext_resource type="Texture2D" uid="uid://cfbvrcr2cxndb" path="res://assets/graphics/background/trees_foreground.png" id="5_dinhu"]
[ext_resource type="Texture2D" uid="uid://cfkcsnjdu1hyu" path="res://assets/graphics/terrain/vegetation/veg_32x32.png" id="5_vtaks"]
[ext_resource type="Texture2D" uid="uid://bu2davrqnpe" path="res://assets/graphics/background/plane.png" id="6_kvuet"]
[ext_resource type="PackedScene" uid="uid://c633ux67ehud7" path="res://scenes/bullet.tscn" id="6_p57ef"]
[ext_resource type="PackedScene" uid="uid://c0b4iaixh56in" path="res://scenes/coin.tscn" id="12_dinhu"]
[ext_resource type="PackedScene" uid="uid://cro4avvf0dbbr" path="res://scenes/slime.tscn" id="13_kvuet"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_gee14"]
texture = ExtResource("3_u5sy4")
@ -291,6 +291,7 @@ texture_region_size = Vector2i(32, 32)
16:3/0/terrains_peering_bit/left_side = 0
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
@ -301,6 +302,7 @@ texture_region_size = Vector2i(32, 32)
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
@ -402,7 +404,7 @@ size = Vector2(55.5, 41)
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_16wxc"]
[node name="Game" type="Node2D"]
script = ExtResource("1_wj22x")
position = Vector2(-14, 3)
[node name="SceneManager" type="Node" parent="."]
unique_name_in_owner = true
@ -442,7 +444,7 @@ texture = ExtResource("6_kvuet")
[node name="TileMapLayer" type="TileMapLayer" parent="."]
texture_filter = 1
position = Vector2(1, 0)
tile_map_data = PackedByteArray("AAAOAAoAAAAEAAQAAAAQAAoAAAAPAAQAAAARAAoAAAABAAQAAAASAAoAAAABAAQAAAATAAoAAAAQAAQAAAAJAAoAAAAEAAIAAAAJAAkAAAANAAMAAAAIAAkAAAAPAAQAAAAIAAgAAAAQAAMAAAAHAAgAAAAPAAQAAAAHAAcAAAAEAAAAAAATAAkAAAAEAAAAAAAQAAkAAAAEAAAAAAAEAA0AAAABAAIAAAAFAA0AAAABAAIAAAAGAA0AAAABAAIAAAAHAA0AAAABAAIAAAAIAA0AAAABAAIAAAAJAA0AAAABAAIAAAAKAA0AAAABAAIAAAALAA0AAAAJAAQAAAAMAA0AAAABAAQAAAANAA0AAAAKAAQAAAAOAA0AAAABAAIAAAAPAA0AAAABAAIAAAAQAA0AAAABAAIAAAARAA0AAAABAAIAAAASAA0AAAABAAIAAAATAA0AAAABAAIAAAAUAA0AAAABAAIAAAAVAA0AAAABAAIAAAAWAA0AAAABAAIAAAAXAA0AAAABAAIAAAAYAA0AAAABAAIAAAAZAA0AAAACAAIAAAAEAAwAAAABAAAAAAAFAAwAAAABAAAAAAAGAAwAAAABAAAAAAAHAAwAAAABAAAAAAAIAAwAAAABAAAAAAAJAAwAAAABAAAAAAAKAAwAAAABAAAAAAALAAwAAAACAAAAAAANAAwAAAAAAAAAAAAOAAwAAAABAAAAAAAPAAwAAAABAAAAAAAQAAwAAAABAAAAAAARAAwAAAABAAAAAAASAAwAAAABAAAAAAATAAwAAAABAAAAAAAUAAwAAAABAAAAAAAVAAwAAAABAAAAAAAWAAwAAAABAAAAAAAXAAwAAAABAAAAAAAYAAwAAAABAAAAAAAZAAwAAAACAAAAAAAQAAgAAgAAAAAAAAAVAAsAAQAAAAEAAAAVAAoAAQAAAAAAAAAWAAsAAQAAAAEAAAAWAAoAAQAAAAAAAAAZAAsAAgAAAAAAAAAYAAsAAQAAAAEAAAAYAAoAAQAAAAAAAAAXAAsAAQAAAAEAAAAXAAoAAQAAAAAAAAANAAkAAAAQAAQAAAAMAAkAAAABAAQAAAALAAkAAAABAAQAAAAKAAkAAAABAAQAAAADAAwAAAABAAAAAAACAAwAAAABAAAAAAABAAwAAAABAAAAAAAAAAwAAAAGAAQAAAADAA0AAAABAAIAAAACAA0AAAABAAIAAAABAA0AAAABAAIAAAAAAA0AAAAAAAIAAAA=")
tile_map_data = PackedByteArray("AAAOAAoAAAAEAAQAAAAQAAoAAAAPAAQAAAARAAoAAAABAAQAAAASAAoAAAABAAQAAAATAAoAAAAQAAQAAAAJAAoAAAAEAAIAAAAJAAkAAAANAAMAAAAIAAkAAAAPAAQAAAAIAAgAAAAQAAMAAAAHAAgAAAAPAAQAAAAHAAcAAAAEAAAAAAATAAkAAAAEAAAAAAAQAAkAAAAEAAAAAAAEAA0AAAABAAIAAAAFAA0AAAABAAIAAAAGAA0AAAABAAIAAAAHAA0AAAABAAIAAAAIAA0AAAABAAIAAAAJAA0AAAABAAIAAAAKAA0AAAABAAIAAAALAA0AAAAJAAQAAAAMAA0AAAABAAQAAAANAA0AAAAKAAQAAAAOAA0AAAABAAIAAAAPAA0AAAABAAIAAAAQAA0AAAABAAIAAAARAA0AAAABAAIAAAASAA0AAAABAAIAAAATAA0AAAABAAIAAAAUAA0AAAABAAIAAAAVAA0AAAABAAIAAAAWAA0AAAABAAIAAAAXAA0AAAABAAIAAAAYAA0AAAABAAIAAAAZAA0AAAACAAIAAAAEAAwAAAABAAAAAAAFAAwAAAABAAAAAAAGAAwAAAABAAAAAAAHAAwAAAABAAAAAAAIAAwAAAABAAAAAAAJAAwAAAABAAAAAAAKAAwAAAABAAAAAAALAAwAAAACAAAAAAANAAwAAAAAAAAAAAAOAAwAAAABAAAAAAAPAAwAAAABAAAAAAAQAAwAAAABAAAAAAARAAwAAAABAAAAAAASAAwAAAABAAAAAAATAAwAAAABAAAAAAAUAAwAAAABAAAAAAAVAAwAAAABAAAAAAAWAAwAAAABAAAAAAAXAAwAAAABAAAAAAAYAAwAAAABAAAAAAAZAAwAAAACAAAAAAAQAAgAAgAAAAAAAAAVAAsAAQAAAAEAAAAVAAoAAQAAAAAAAAAWAAsAAQAAAAEAAAAWAAoAAQAAAAAAAAAZAAsAAgAAAAAAAAAYAAsAAQAAAAEAAAAYAAoAAQAAAAAAAAAXAAsAAQAAAAEAAAAXAAoAAQAAAAAAAAANAAkAAAACAAQAAAAMAAkAAAABAAQAAAALAAkAAAABAAQAAAAKAAkAAAABAAQAAAADAAwAAAABAAAAAAACAAwAAAABAAAAAAABAAwAAAABAAAAAAAAAAwAAAAGAAQAAAADAA0AAAABAAIAAAACAA0AAAABAAIAAAABAA0AAAABAAIAAAAAAA0AAAAAAAIAAAARAAcAAAAAAAQAAAASAAcAAAABAAQAAAATAAcAAAACAAQAAAA=")
tile_set = SubResource("TileSet_0tnpc")
[node name="CharacterBody2D" parent="." instance=ExtResource("2_lnu2h")]
@ -484,35 +486,38 @@ shape = SubResource("WorldBoundaryShape2D_16wxc")
[node name="crates" type="Node2D" parent="."]
[node name="RigidBody2D" parent="crates" instance=ExtResource("4_iywne")]
position = Vector2(407, 407)
[node name="RigidBody2D2" parent="crates" instance=ExtResource("4_iywne")]
position = Vector2(508, 303)
[node name="RigidBody2D3" parent="crates" instance=ExtResource("4_iywne")]
position = Vector2(576, 221)
position = Vector2(367, 271)
[node name="RigidBody2D4" parent="crates" instance=ExtResource("4_iywne")]
position = Vector2(403, 324)
[node name="triggers" type="Node2D" parent="."]
[node name="RigidBody2D5" parent="crates" instance=ExtResource("4_iywne")]
position = Vector2(357, 331)
[node name="Trigger" parent="triggers" instance=ExtResource("3_jlag1")]
position = Vector2(324, 259)
[node name="Trigger" parent="." instance=ExtResource("3_jlag1")]
position = Vector2(-39, 214)
[node name="Trigger2" parent="." instance=ExtResource("3_jlag1")]
position = Vector2(638, 390)
[node name="Trigger2" parent="triggers" instance=ExtResource("3_jlag1")]
position = Vector2(719, 82)
effect = "teleport"
[node name="Area2D" parent="." instance=ExtResource("6_p57ef")]
position = Vector2(366, 300)
[node name="DirectionalLight2D" type="DirectionalLight2D" parent="."]
color = Color(0.328443, 0.958547, 0.863958, 1)
energy = 0.23
blend_mode = 1
[connection signal="triggerFired" from="Trigger" to="." method="_on_trigger_fired"]
[connection signal="triggerFired" from="Trigger2" to="." method="_on_trigger_fired"]
[node name="coins" type="Node2D" parent="."]
[node name="Area2D" parent="coins" instance=ExtResource("12_dinhu")]
position = Vector2(281, 250)
[node name="Area2D2" parent="coins" instance=ExtResource("12_dinhu")]
position = Vector2(557, 314)
[node name="enemies" type="Node2D" parent="."]
[node name="Area2D" parent="enemies" instance=ExtResource("13_kvuet")]
position = Vector2(396, 275)
[node name="Area2D2" parent="enemies" instance=ExtResource("13_kvuet")]
position = Vector2(594, 309)
[connection signal="triggerFired" from="triggers/Trigger" to="." method="_on_trigger_fired"]
[connection signal="triggerFired" from="triggers/Trigger2" to="." method="_on_trigger_fired"]

519
scenes/level2.tscn Normal file
View File

@ -0,0 +1,519 @@
[gd_scene load_steps=19 format=4 uid="uid://d0qq6qkntfckg"]
[ext_resource type="Script" uid="uid://bus3b1g717jlm" path="res://scripts/scene_manager.gd" id="1_76toy"]
[ext_resource type="Texture2D" uid="uid://dhkx31lax12gl" path="res://assets/graphics/background/sky_far.png" id="2_8g4ke"]
[ext_resource type="Texture2D" uid="uid://uswj5ignpua4" path="res://assets/graphics/background/forestbackground_mid.png" id="3_56gwk"]
[ext_resource type="Texture2D" uid="uid://cfbvrcr2cxndb" path="res://assets/graphics/background/trees_foreground.png" id="4_ve5ok"]
[ext_resource type="Texture2D" uid="uid://bu2davrqnpe" path="res://assets/graphics/background/plane.png" id="5_cleqw"]
[ext_resource type="Texture2D" uid="uid://c386aypkw54oc" path="res://assets/graphics/terrain/Terrain (32x32).png" id="6_wvb8j"]
[ext_resource type="Texture2D" uid="uid://dq8nlvjv522pc" path="res://assets/graphics/terrain/vegetation/mushroom_32x64.png" id="7_g8vcy"]
[ext_resource type="Texture2D" uid="uid://cfkcsnjdu1hyu" path="res://assets/graphics/terrain/vegetation/veg_32x32.png" id="8_cqal4"]
[ext_resource type="PackedScene" uid="uid://cgk1d1f5ffbbd" path="res://scenes/player.tscn" id="9_o3sye"]
[ext_resource type="PackedScene" uid="uid://cym46ub26gs80" path="res://scenes/crate.tscn" id="10_24ks5"]
[ext_resource type="PackedScene" uid="uid://clf5mhteceas4" path="res://scenes/trigger.tscn" id="11_s4es8"]
[ext_resource type="PackedScene" uid="uid://c0b4iaixh56in" path="res://scenes/coin.tscn" id="12_8g4ke"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_gee14"]
texture = ExtResource("6_wvb8j")
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/terrain_set = 0
6:0/0/terrain = 0
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/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/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/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/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/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/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
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
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/terrain_set = 0
6:1/0/terrain = 0
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/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/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/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/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/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/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/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
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/terrain_set = 0
6:3/0/terrain = 0
6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 0, -16, -0.31863, 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(2.54905, -16, 16, -16, 16, 16, 2.54905, 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, -3.18631, -16, -1.59315)
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, -3.18631, -16, -1.59315)
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, -6.69124, -16, -7.00988, 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, -3.82357, -16, -2.86768)
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, -0.955893, -0.955891, -0.955893, -0.63726, 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, 1.27452, 16, 0, -0.31863, -16, -0.955893)
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
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/terrain_set = 0
6:4/0/terrain = 0
6:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 0, -16, -0.31863, 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(2.54905, -16, 16, -16, 16, 16, 2.54905, 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, -0.63726, 16, -0.955893, 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, -0.63726, 16, -0.955893, 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, 3.50494, 16, 3.18631, 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(5.73536, -16, 16, -16, 16, 16, 5.09809, 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(0, -16, 1.59315, 0.63726, 16, 0.955891, 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(0.637264, -16, 16, -16, 16, 16, -16, 16, -16, 0.955891, 1.59315, 1.91179)
16:4/0/terrains_peering_bit/left_side = 0
16:4/0/terrains_peering_bit/top_side = 0
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_kvpfn"]
texture = ExtResource("7_g8vcy")
texture_region_size = Vector2i(32, 32)
0:0/0 = 0
0:0/0/terrain_set = 0
0:0/0/terrains_peering_bit/bottom_side = 1
0:1/0 = 0
0:1/0/terrain_set = 0
0:1/0/terrain = 1
0:1/0/terrains_peering_bit/top_side = 1
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_dinhu"]
texture = ExtResource("8_cqal4")
texture_region_size = Vector2i(32, 32)
0:0/0 = 0
0:0/0/terrain_set = 0
0:0/0/terrain = 1
[sub_resource type="TileSet" id="TileSet_0tnpc"]
tile_size = Vector2i(32, 32)
physics_layer_0/collision_layer = 1
terrain_set_0/mode = 0
terrain_set_0/terrain_0/name = "LeafyRocks"
terrain_set_0/terrain_0/color = Color(0.5, 0.34375, 0.25, 1)
terrain_set_0/terrain_1/name = "veg"
terrain_set_0/terrain_1/color = Color(0.5, 0.4375, 0.25, 1)
sources/0 = SubResource("TileSetAtlasSource_gee14")
sources/1 = SubResource("TileSetAtlasSource_kvpfn")
sources/2 = SubResource("TileSetAtlasSource_dinhu")
[sub_resource type="RectangleShape2D" id="RectangleShape2D_um86g"]
size = Vector2(55.5, 41)
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_16wxc"]
[node name="Game" type="Node2D"]
[node name="SceneManager" type="Node" parent="."]
unique_name_in_owner = true
script = ExtResource("1_76toy")
[node name="Parallax2D" type="Parallax2D" parent="."]
repeat_size = Vector2(320, 180)
[node name="Sprite2D" type="Sprite2D" parent="Parallax2D"]
texture_filter = 1
position = Vector2(160, 90)
texture = ExtResource("2_8g4ke")
[node name="Parallax2D2" type="Parallax2D" parent="."]
scroll_scale = Vector2(0.5, 0.5)
repeat_size = Vector2(320, 0)
[node name="Sprite2D" type="Sprite2D" parent="Parallax2D2"]
texture_filter = 1
position = Vector2(160, 300)
texture = ExtResource("3_56gwk")
[node name="Parallax2D3" type="Parallax2D" parent="."]
scroll_scale = Vector2(0.8, 0.8)
repeat_size = Vector2(320, 0)
[node name="Sprite2D" type="Sprite2D" parent="Parallax2D3"]
texture_filter = 1
position = Vector2(160, 300)
texture = ExtResource("4_ve5ok")
[node name="Sprite2D" type="Sprite2D" parent="."]
texture_filter = 1
position = Vector2(684, 372)
texture = ExtResource("5_cleqw")
[node name="TileMapLayer" type="TileMapLayer" parent="."]
texture_filter = 1
position = Vector2(1, 0)
tile_map_data = PackedByteArray("AAAOAAoAAAAEAAQAAAAQAAoAAAAPAAQAAAARAAoAAAABAAQAAAASAAoAAAABAAQAAAATAAoAAAAQAAQAAAAJAAoAAAAEAAIAAAAJAAkAAAANAAMAAAAIAAkAAAAPAAQAAAAIAAgAAAAQAAMAAAAHAAgAAAAPAAQAAAAHAAcAAAAEAAAAAAATAAkAAAAEAAAAAAAQAAkAAAAEAAAAAAAEAA0AAAABAAIAAAAFAA0AAAABAAIAAAAGAA0AAAABAAIAAAAHAA0AAAABAAIAAAAIAA0AAAABAAIAAAAJAA0AAAABAAIAAAAKAA0AAAABAAIAAAALAA0AAAAJAAQAAAAMAA0AAAABAAQAAAANAA0AAAAKAAQAAAAOAA0AAAABAAIAAAAPAA0AAAABAAIAAAAQAA0AAAABAAIAAAARAA0AAAABAAIAAAASAA0AAAABAAIAAAATAA0AAAABAAIAAAAUAA0AAAABAAIAAAAVAA0AAAABAAIAAAAWAA0AAAABAAIAAAAXAA0AAAABAAIAAAAYAA0AAAABAAIAAAAZAA0AAAACAAIAAAAEAAwAAAABAAAAAAAFAAwAAAABAAAAAAAGAAwAAAABAAAAAAAHAAwAAAABAAAAAAAIAAwAAAABAAAAAAAJAAwAAAABAAAAAAAKAAwAAAABAAAAAAALAAwAAAACAAAAAAANAAwAAAAAAAAAAAAOAAwAAAABAAAAAAAPAAwAAAABAAAAAAAQAAwAAAABAAAAAAARAAwAAAABAAAAAAASAAwAAAABAAAAAAATAAwAAAABAAAAAAAUAAwAAAABAAAAAAAVAAwAAAABAAAAAAAWAAwAAAABAAAAAAAXAAwAAAABAAAAAAAYAAwAAAABAAAAAAAZAAwAAAACAAAAAAAQAAgAAgAAAAAAAAAVAAsAAQAAAAEAAAAVAAoAAQAAAAAAAAAWAAsAAQAAAAEAAAAWAAoAAQAAAAAAAAAZAAsAAgAAAAAAAAAYAAsAAQAAAAEAAAAYAAoAAQAAAAAAAAAXAAsAAQAAAAEAAAAXAAoAAQAAAAAAAAAMAAkAAAABAAQAAAALAAkAAAABAAQAAAAKAAkAAAABAAQAAAADAAwAAAABAAAAAAACAAwAAAABAAAAAAABAAwAAAABAAAAAAAAAAwAAAAGAAQAAAADAA0AAAABAAIAAAACAA0AAAABAAIAAAABAA0AAAABAAIAAAAAAA0AAAAAAAIAAAANAAkAAAACAAQAAAA=")
tile_set = SubResource("TileSet_0tnpc")
[node name="CharacterBody2D" parent="." instance=ExtResource("9_o3sye")]
position = Vector2(471, 287)
[node name="level" type="Node2D" parent="."]
[node name="StaticBody2D" type="StaticBody2D" parent="level"]
position = Vector2(1050, 300)
scale = Vector2(0.600002, 1)
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="level/StaticBody2D"]
position = Vector2(-0.75, 10.5)
shape = SubResource("RectangleShape2D_um86g")
[node name="StaticBody2D2" type="StaticBody2D" parent="level"]
position = Vector2(1091, 498)
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="level/StaticBody2D2"]
position = Vector2(-0.75, 10.5)
shape = SubResource("RectangleShape2D_um86g")
[node name="StaticBody2D3" type="StaticBody2D" parent="level"]
position = Vector2(1051, 368)
scale = Vector2(2.2, 1)
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="level/StaticBody2D3"]
position = Vector2(-0.75, 10.5)
shape = SubResource("RectangleShape2D_um86g")
[node name="Floor" type="StaticBody2D" parent="level"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="level/Floor"]
position = Vector2(473, 428)
shape = SubResource("WorldBoundaryShape2D_16wxc")
[node name="crates" type="Node2D" parent="."]
[node name="RigidBody2D" parent="crates" instance=ExtResource("10_24ks5")]
position = Vector2(407, 407)
[node name="RigidBody2D2" parent="crates" instance=ExtResource("10_24ks5")]
position = Vector2(508, 303)
[node name="RigidBody2D3" parent="crates" instance=ExtResource("10_24ks5")]
position = Vector2(576, 221)
[node name="RigidBody2D4" parent="crates" instance=ExtResource("10_24ks5")]
position = Vector2(403, 324)
[node name="RigidBody2D5" parent="crates" instance=ExtResource("10_24ks5")]
position = Vector2(357, 331)
[node name="DirectionalLight2D" type="DirectionalLight2D" parent="."]
color = Color(0.328443, 0.958547, 0.863958, 1)
energy = 0.23
blend_mode = 1
[node name="triggers" type="Node2D" parent="."]
[node name="Trigger" parent="triggers" instance=ExtResource("11_s4es8")]
position = Vector2(348, 258)
[node name="Trigger2" parent="triggers" instance=ExtResource("11_s4es8")]
position = Vector2(719, 82)
effect = "teleport"
[node name="coins" type="Node2D" parent="."]
[node name="Area2D" parent="coins" instance=ExtResource("12_8g4ke")]
position = Vector2(433, 282)

520
scenes/level3.tscn Normal file
View File

@ -0,0 +1,520 @@
[gd_scene load_steps=19 format=4 uid="uid://bcdsen05n88xb"]
[ext_resource type="Script" uid="uid://bus3b1g717jlm" path="res://scripts/scene_manager.gd" id="1_fh4ka"]
[ext_resource type="Texture2D" uid="uid://dhkx31lax12gl" path="res://assets/graphics/background/sky_far.png" id="2_qewby"]
[ext_resource type="Texture2D" uid="uid://uswj5ignpua4" path="res://assets/graphics/background/forestbackground_mid.png" id="3_bradm"]
[ext_resource type="Texture2D" uid="uid://cfbvrcr2cxndb" path="res://assets/graphics/background/trees_foreground.png" id="4_got4s"]
[ext_resource type="Texture2D" uid="uid://bu2davrqnpe" path="res://assets/graphics/background/plane.png" id="5_e40mx"]
[ext_resource type="Texture2D" uid="uid://c386aypkw54oc" path="res://assets/graphics/terrain/Terrain (32x32).png" id="6_a114e"]
[ext_resource type="Texture2D" uid="uid://dq8nlvjv522pc" path="res://assets/graphics/terrain/vegetation/mushroom_32x64.png" id="7_y1e0c"]
[ext_resource type="Texture2D" uid="uid://cfkcsnjdu1hyu" path="res://assets/graphics/terrain/vegetation/veg_32x32.png" id="8_s4dsi"]
[ext_resource type="PackedScene" uid="uid://cgk1d1f5ffbbd" path="res://scenes/player.tscn" id="9_07lh1"]
[ext_resource type="PackedScene" uid="uid://cym46ub26gs80" path="res://scenes/crate.tscn" id="10_6uuvf"]
[ext_resource type="PackedScene" uid="uid://clf5mhteceas4" path="res://scenes/trigger.tscn" id="11_x008a"]
[ext_resource type="PackedScene" uid="uid://c0b4iaixh56in" path="res://scenes/coin.tscn" id="12_qewby"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_gee14"]
texture = ExtResource("6_a114e")
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/terrain_set = 0
6:0/0/terrain = 0
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/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/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/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/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/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/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
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
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/terrain_set = 0
6:1/0/terrain = 0
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/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/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/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/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/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/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/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
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/terrain_set = 0
6:3/0/terrain = 0
6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 0, -16, -0.31863, 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(2.54905, -16, 16, -16, 16, 16, 2.54905, 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, -3.18631, -16, -1.59315)
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, -3.18631, -16, -1.59315)
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, -6.69124, -16, -7.00988, 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, -3.82357, -16, -2.86768)
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, -0.955893, -0.955891, -0.955893, -0.63726, 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, 1.27452, 16, 0, -0.31863, -16, -0.955893)
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
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/terrain_set = 0
6:4/0/terrain = 0
6:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 0, -16, -0.31863, 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(2.54905, -16, 16, -16, 16, 16, 2.54905, 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, -0.63726, 16, -0.955893, 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, -0.63726, 16, -0.955893, 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, 3.50494, 16, 3.18631, 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(5.73536, -16, 16, -16, 16, 16, 5.09809, 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(0, -16, 1.59315, 0.63726, 16, 0.955891, 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(0.637264, -16, 16, -16, 16, 16, -16, 16, -16, 0.955891, 1.59315, 1.91179)
16:4/0/terrains_peering_bit/left_side = 0
16:4/0/terrains_peering_bit/top_side = 0
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_kvpfn"]
texture = ExtResource("7_y1e0c")
texture_region_size = Vector2i(32, 32)
0:0/0 = 0
0:0/0/terrain_set = 0
0:0/0/terrains_peering_bit/bottom_side = 1
0:1/0 = 0
0:1/0/terrain_set = 0
0:1/0/terrain = 1
0:1/0/terrains_peering_bit/top_side = 1
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_dinhu"]
texture = ExtResource("8_s4dsi")
texture_region_size = Vector2i(32, 32)
0:0/0 = 0
0:0/0/terrain_set = 0
0:0/0/terrain = 1
[sub_resource type="TileSet" id="TileSet_0tnpc"]
tile_size = Vector2i(32, 32)
physics_layer_0/collision_layer = 1
terrain_set_0/mode = 0
terrain_set_0/terrain_0/name = "LeafyRocks"
terrain_set_0/terrain_0/color = Color(0.5, 0.34375, 0.25, 1)
terrain_set_0/terrain_1/name = "veg"
terrain_set_0/terrain_1/color = Color(0.5, 0.4375, 0.25, 1)
sources/0 = SubResource("TileSetAtlasSource_gee14")
sources/1 = SubResource("TileSetAtlasSource_kvpfn")
sources/2 = SubResource("TileSetAtlasSource_dinhu")
[sub_resource type="RectangleShape2D" id="RectangleShape2D_um86g"]
size = Vector2(55.5, 41)
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_16wxc"]
[node name="Game" type="Node2D"]
[node name="SceneManager" type="Node" parent="."]
unique_name_in_owner = true
script = ExtResource("1_fh4ka")
[node name="Parallax2D" type="Parallax2D" parent="."]
repeat_size = Vector2(320, 180)
[node name="Sprite2D" type="Sprite2D" parent="Parallax2D"]
texture_filter = 1
position = Vector2(160, 90)
texture = ExtResource("2_qewby")
[node name="Parallax2D2" type="Parallax2D" parent="."]
scroll_scale = Vector2(0.5, 0.5)
repeat_size = Vector2(320, 0)
[node name="Sprite2D" type="Sprite2D" parent="Parallax2D2"]
texture_filter = 1
position = Vector2(160, 300)
texture = ExtResource("3_bradm")
[node name="Parallax2D3" type="Parallax2D" parent="."]
scroll_scale = Vector2(0.8, 0.8)
repeat_size = Vector2(320, 0)
[node name="Sprite2D" type="Sprite2D" parent="Parallax2D3"]
texture_filter = 1
position = Vector2(160, 300)
texture = ExtResource("4_got4s")
[node name="Sprite2D" type="Sprite2D" parent="."]
texture_filter = 1
position = Vector2(684, 372)
texture = ExtResource("5_e40mx")
[node name="TileMapLayer" type="TileMapLayer" parent="."]
texture_filter = 1
position = Vector2(1, 0)
tile_map_data = PackedByteArray("AAAOAAoAAAAEAAQAAAAQAAoAAAAPAAQAAAARAAoAAAABAAQAAAASAAoAAAABAAQAAAATAAoAAAAQAAQAAAAJAAoAAAAEAAIAAAAJAAkAAAANAAMAAAAIAAkAAAAPAAQAAAAIAAgAAAAQAAMAAAAHAAgAAAAPAAQAAAAHAAcAAAAEAAAAAAATAAkAAAAEAAAAAAAQAAkAAAAEAAAAAAAEAA0AAAABAAIAAAAFAA0AAAABAAIAAAAGAA0AAAABAAIAAAAHAA0AAAABAAIAAAAIAA0AAAABAAIAAAAJAA0AAAABAAIAAAAKAA0AAAABAAIAAAALAA0AAAAJAAQAAAAMAA0AAAABAAQAAAANAA0AAAAKAAQAAAAOAA0AAAABAAIAAAAPAA0AAAABAAIAAAAQAA0AAAABAAIAAAARAA0AAAABAAIAAAASAA0AAAABAAIAAAATAA0AAAABAAIAAAAUAA0AAAABAAIAAAAVAA0AAAABAAIAAAAWAA0AAAABAAIAAAAXAA0AAAABAAIAAAAYAA0AAAABAAIAAAAZAA0AAAACAAIAAAAEAAwAAAABAAAAAAAFAAwAAAABAAAAAAAGAAwAAAABAAAAAAAHAAwAAAABAAAAAAAIAAwAAAABAAAAAAAJAAwAAAABAAAAAAAKAAwAAAABAAAAAAALAAwAAAACAAAAAAANAAwAAAAAAAAAAAAOAAwAAAABAAAAAAAPAAwAAAABAAAAAAAQAAwAAAABAAAAAAARAAwAAAABAAAAAAASAAwAAAABAAAAAAATAAwAAAABAAAAAAAUAAwAAAABAAAAAAAVAAwAAAABAAAAAAAWAAwAAAABAAAAAAAXAAwAAAABAAAAAAAYAAwAAAABAAAAAAAZAAwAAAACAAAAAAAQAAgAAgAAAAAAAAAVAAsAAQAAAAEAAAAVAAoAAQAAAAAAAAAWAAsAAQAAAAEAAAAWAAoAAQAAAAAAAAAZAAsAAgAAAAAAAAAYAAsAAQAAAAEAAAAYAAoAAQAAAAAAAAAXAAsAAQAAAAEAAAAXAAoAAQAAAAAAAAAMAAkAAAABAAQAAAALAAkAAAABAAQAAAAKAAkAAAABAAQAAAADAAwAAAABAAAAAAACAAwAAAABAAAAAAABAAwAAAABAAAAAAAAAAwAAAAGAAQAAAADAA0AAAABAAIAAAACAA0AAAABAAIAAAABAA0AAAABAAIAAAAAAA0AAAAAAAIAAAANAAkAAAACAAQAAAA=")
tile_set = SubResource("TileSet_0tnpc")
[node name="CharacterBody2D" parent="." instance=ExtResource("9_07lh1")]
position = Vector2(471, 287)
[node name="level" type="Node2D" parent="."]
[node name="StaticBody2D" type="StaticBody2D" parent="level"]
position = Vector2(1050, 300)
scale = Vector2(0.600002, 1)
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="level/StaticBody2D"]
position = Vector2(-0.75, 10.5)
shape = SubResource("RectangleShape2D_um86g")
[node name="StaticBody2D2" type="StaticBody2D" parent="level"]
position = Vector2(1091, 498)
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="level/StaticBody2D2"]
position = Vector2(-0.75, 10.5)
shape = SubResource("RectangleShape2D_um86g")
[node name="StaticBody2D3" type="StaticBody2D" parent="level"]
position = Vector2(1051, 368)
scale = Vector2(2.2, 1)
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="level/StaticBody2D3"]
position = Vector2(-0.75, 10.5)
shape = SubResource("RectangleShape2D_um86g")
[node name="Floor" type="StaticBody2D" parent="level"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="level/Floor"]
position = Vector2(473, 428)
shape = SubResource("WorldBoundaryShape2D_16wxc")
[node name="crates" type="Node2D" parent="."]
[node name="RigidBody2D" parent="crates" instance=ExtResource("10_6uuvf")]
position = Vector2(407, 407)
[node name="RigidBody2D2" parent="crates" instance=ExtResource("10_6uuvf")]
position = Vector2(508, 303)
[node name="RigidBody2D3" parent="crates" instance=ExtResource("10_6uuvf")]
position = Vector2(576, 221)
[node name="RigidBody2D4" parent="crates" instance=ExtResource("10_6uuvf")]
position = Vector2(403, 324)
[node name="RigidBody2D5" parent="crates" instance=ExtResource("10_6uuvf")]
position = Vector2(357, 331)
[node name="Trigger" parent="." instance=ExtResource("11_x008a")]
position = Vector2(-39, 214)
[node name="Trigger2" parent="." instance=ExtResource("11_x008a")]
position = Vector2(638, 390)
effect = "teleport"
[node name="DirectionalLight2D" type="DirectionalLight2D" parent="."]
color = Color(0.328443, 0.958547, 0.863958, 1)
energy = 0.23
blend_mode = 1
[node name="coins" type="Node2D" parent="."]
[node name="Area2D" parent="coins" instance=ExtResource("12_qewby")]
position = Vector2(433, 282)
[connection signal="triggerFired" from="Trigger" to="." method="_on_trigger_fired"]
[connection signal="triggerFired" from="Trigger2" to="." method="_on_trigger_fired"]

73
scenes/slime.tscn Normal file
View File

@ -0,0 +1,73 @@
[gd_scene load_steps=9 format=3 uid="uid://cro4avvf0dbbr"]
[ext_resource type="Script" uid="uid://bk0hrjj1738iy" path="res://scripts/slime.gd" id="1_p2gj0"]
[ext_resource type="Texture2D" uid="uid://bc5qrj3rg2rey" path="res://assets/graphics/enemies/slime_green.png" id="2_n6pvg"]
[sub_resource type="AtlasTexture" id="AtlasTexture_pjw23"]
atlas = ExtResource("2_n6pvg")
region = Rect2(0, 24, 24, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_2npkn"]
atlas = ExtResource("2_n6pvg")
region = Rect2(24, 24, 24, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_fd6lc"]
atlas = ExtResource("2_n6pvg")
region = Rect2(48, 24, 24, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_gstla"]
atlas = ExtResource("2_n6pvg")
region = Rect2(72, 24, 24, 24)
[sub_resource type="SpriteFrames" id="SpriteFrames_v5wyi"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_pjw23")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_2npkn")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_fd6lc")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_gstla")
}],
"loop": true,
"name": &"run",
"speed": 12.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_0l8pv"]
size = Vector2(14, 15)
[node name="Area2D" type="Area2D"]
script = ExtResource("1_p2gj0")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
texture_filter = 1
sprite_frames = SubResource("SpriteFrames_v5wyi")
animation = &"run"
autoplay = "run"
frame_progress = 0.677109
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, 4.5)
shape = SubResource("RectangleShape2D_0l8pv")
[node name="RightSideCast" type="RayCast2D" parent="."]
target_position = Vector2(13, 0)
[node name="RightDownCast" type="RayCast2D" parent="."]
position = Vector2(7, 0)
target_position = Vector2(0, 14)
[node name="LeftDownCast" type="RayCast2D" parent="."]
position = Vector2(-7, 0)
target_position = Vector2(0, 14)
[node name="LeftSideCast" type="RayCast2D" parent="."]
target_position = Vector2(-13, 0)
[connection signal="body_entered" from="." to="." method="_on_body_entered"]

7
scripts/coin.gd Normal file
View File

@ -0,0 +1,7 @@
class_name Coin extends Area2D
signal coinCollectedSignal(body, coin)
func _on_body_entered(body: Node2D) -> void:
print("Coin collision")
coinCollectedSignal.emit(body, self)

1
scripts/coin.gd.uid Normal file
View File

@ -0,0 +1 @@
uid://cp61o6khv0k24

View File

@ -3,6 +3,19 @@ var totalCrates = 3
var timeLimit = 10
var timer = Timer.new()
var coinsCollectedTotal := 0
var levels = ["res://scenes/game.tscn","res://scenes/level2.tscn","res://scenes/level3.tscn"]
var timers = [10, 15, 25]
var currentLevel = 0
var playerHealth = 100
signal levelCompleteSignal(level)
signal destroySignal(body)
signal playerDamage
signal playerDeath
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
add_child(timer)
@ -14,23 +27,42 @@ func secondCounter():
timeLimit -=1
if timeLimit <= 0:
get_tree().reload_current_scene()
#loser!!!!
levelCompleteSignal.emit(levels[currentLevel])
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
if totalCrates == 0:
print("YOU WIN!")
currentLevel +=1
if currentLevel >= levels.size():
currentLevel = 0
levelCompleteSignal.emit(levels[currentLevel])
func _on_trigger_fired(effect: Variant, body: Variant) -> void:
print("Game controller knows :: "+effect)
if effect=="destroy":
totalCrates -= 1
if body is Crate:
print("Crates Remaining " + str(totalCrates) )
body.queue_free()
if totalCrates == 0:
print("YOU WIN!")
get_tree().reload_current_scene()
destroySignal.emit(body)
func _on_coin_collected(body, coin):
coinsCollectedTotal += 1
destroySignal.emit(coin)
print("GC knows coin collected")
func _on_player_damage(body, enemy):
if enemy is Slime:
print("slime attack!!!")
playerHealth -= 10
if playerHealth >0:
print("Player damaged")
playerDamage.emit()
else:
print("Player dead")
playerDeath.emit()
func numberOfCrates(value):
totalCrates = value
@ -38,3 +70,10 @@ func numberOfCrates(value):
func bulletDamage(body, bullet):
print("Game controller knows about bullet hit")
func reset():
timeLimit = timers[currentLevel]
playerHealth = 100
func death():
print("player death animation complete")

View File

@ -29,6 +29,13 @@ var pushTarget:RigidBody2D
var pushEnabled:bool = false
var upJump:bool = false
signal deathComplete
func _player_damage():
print("Player taking damage!")
func _player_death():
print("Player dead!!")
func _physics_process(delta: float) -> void:

View File

@ -1,20 +1,52 @@
extends Node
@onready var game: GameController = $".."
@onready var crates: Node2D = $"../crates"
@onready var triggers: Node2D = $"../triggers"
@onready var coins: Node2D = $"../coins"
@onready var enemies: Node2D = $"../enemies"
@onready var player: Player = $"../CharacterBody2D"
var bullet = preload("res://scenes/bullet.tscn")
var bulletArray=[]
var totalAllowedBullets = 7
func buildLevel()->void:
Gamecontroller.reset()
#count crates
# tell the game controller
Gamecontroller.numberOfCrates( countCrates() )
if triggers:
for obj in triggers.get_children():
if obj is Trigger:
obj.triggerFired.connect(Gamecontroller._on_trigger_fired)
# coins
if coins:
for obj in coins.get_children():
if obj is Coin:
obj.coinCollectedSignal.connect(Gamecontroller._on_coin_collected)
# enemies
if enemies:
for obj in enemies.get_children():
if obj is Slime:
obj.playerDamageSignal.connect(Gamecontroller._on_player_damage)
#Wire up signals
Gamecontroller.levelCompleteSignal.connect(loadLevel)
Gamecontroller.destroySignal.connect(destroy)
Gamecontroller.playerDamage.connect(player._player_damage)
Gamecontroller.playerDeath.connect(player._player_death)
#player connection
player.deathComplete.connect(Gamecontroller.death)
func countCrates()->int:
var totalCrates = 0
for obj in crates.get_children():
if obj is Crate:
totalCrates +=1
# tell the game controller
game.numberOfCrates(totalCrates)
return totalCrates
func _ready() -> void:
buildLevel()
@ -24,7 +56,7 @@ func bulletFactory():
if bulletArray.size() < totalAllowedBullets:
#new bullet
mybullet = bullet.instantiate()
mybullet.connect("bulletHit", game.bulletDamage)
mybullet.connect("bulletHit", Gamecontroller.bulletDamage)
owner.add_child(mybullet)
else:
#recycled bullet
@ -38,3 +70,12 @@ func makeBullet(position, speed):
var mybullet = bulletFactory()
mybullet.setSpeed(speed)
mybullet.transform = position
func loadLevel(level):
get_tree().call_deferred("change_scene_to_file", level)
func destroy(body):
if body is Crate:
Gamecontroller.numberOfCrates( countCrates() -1 )
body.queue_free()

24
scripts/slime.gd Normal file
View File

@ -0,0 +1,24 @@
class_name Slime extends Area2D
signal playerDamageSignal(body, slime)
@onready var right_side_cast: RayCast2D = $RightSideCast
@onready var right_down_cast: RayCast2D = $RightDownCast
@onready var left_down_cast: RayCast2D = $LeftDownCast
@onready var left_side_cast: RayCast2D = $LeftSideCast
@onready var sprite: AnimatedSprite2D = $AnimatedSprite2D
var speed = 100
var direction = 1
func _process(delta: float) -> void:
if not right_down_cast.is_colliding() or right_side_cast.is_colliding():
direction = -1
sprite.flip_h = true
if not left_down_cast.is_colliding() or left_side_cast.is_colliding():
direction = 1
sprite.flip_h = false
position.x += direction * speed * delta
func _on_body_entered(body: Node2D) -> void:
print("Slime Contact")
playerDamageSignal.emit(body, self)

1
scripts/slime.gd.uid Normal file
View File

@ -0,0 +1 @@
uid://bk0hrjj1738iy

View File

@ -1,4 +1,4 @@
extends Area2D
class_name Trigger extends Area2D
@export var effect = "destroy"