diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..e1e6a58 Binary files /dev/null and b/.DS_Store differ diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..9364509 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "gotoSymbolStack.currentStackPosition": 0, + "gotoSymbolStack.maxStackPosition": 0, + "gotoSymbolStack.filePositionInfo": [] +} \ No newline at end of file diff --git a/assets/.DS_Store b/assets/.DS_Store new file mode 100644 index 0000000..91c3d8e Binary files /dev/null and b/assets/.DS_Store differ diff --git a/assets/graphics/.DS_Store b/assets/graphics/.DS_Store new file mode 100644 index 0000000..b6b1d76 Binary files /dev/null and b/assets/graphics/.DS_Store differ diff --git a/assets/graphics/backgrounds/Additional Sky.png b/assets/graphics/backgrounds/Additional Sky.png new file mode 100644 index 0000000..46e400f Binary files /dev/null and b/assets/graphics/backgrounds/Additional Sky.png differ diff --git a/assets/graphics/backgrounds/Additional Sky.png.import b/assets/graphics/backgrounds/Additional Sky.png.import new file mode 100644 index 0000000..dd3f668 --- /dev/null +++ b/assets/graphics/backgrounds/Additional Sky.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c7jv76bxbxvbh" +path="res://.godot/imported/Additional Sky.png-781c1647bd3dd7b325bb71495db0c9d5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/backgrounds/Additional Sky.png" +dest_files=["res://.godot/imported/Additional Sky.png-781c1647bd3dd7b325bb71495db0c9d5.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 diff --git a/assets/graphics/backgrounds/Additional Water.png b/assets/graphics/backgrounds/Additional Water.png new file mode 100644 index 0000000..591e481 Binary files /dev/null and b/assets/graphics/backgrounds/Additional Water.png differ diff --git a/assets/graphics/backgrounds/Additional Water.png.import b/assets/graphics/backgrounds/Additional Water.png.import new file mode 100644 index 0000000..fba7cfa --- /dev/null +++ b/assets/graphics/backgrounds/Additional Water.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://56yn4twr0ha5" +path="res://.godot/imported/Additional Water.png-61e2fa27b0287dabbb2315080fcba882.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/backgrounds/Additional Water.png" +dest_files=["res://.godot/imported/Additional Water.png-61e2fa27b0287dabbb2315080fcba882.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 diff --git a/assets/graphics/backgrounds/BG Image.png b/assets/graphics/backgrounds/BG Image.png new file mode 100644 index 0000000..3f2a66c Binary files /dev/null and b/assets/graphics/backgrounds/BG Image.png differ diff --git a/assets/graphics/backgrounds/BG Image.png.import b/assets/graphics/backgrounds/BG Image.png.import new file mode 100644 index 0000000..e957b47 --- /dev/null +++ b/assets/graphics/backgrounds/BG Image.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cuar5ad7dekq6" +path="res://.godot/imported/BG Image.png-3222f804d79eb91aa2d4605e9dfa818d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/backgrounds/BG Image.png" +dest_files=["res://.godot/imported/BG Image.png-3222f804d79eb91aa2d4605e9dfa818d.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 diff --git a/assets/graphics/backgrounds/forestbackground.png b/assets/graphics/backgrounds/forestbackground.png new file mode 100644 index 0000000..975c185 Binary files /dev/null and b/assets/graphics/backgrounds/forestbackground.png differ diff --git a/assets/graphics/backgrounds/forestbackground.png.import b/assets/graphics/backgrounds/forestbackground.png.import new file mode 100644 index 0000000..453513d --- /dev/null +++ b/assets/graphics/backgrounds/forestbackground.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b2djs54a544mi" +path="res://.godot/imported/forestbackground.png-f84b590d20143b6e2c8a82165c029463.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/backgrounds/forestbackground.png" +dest_files=["res://.godot/imported/forestbackground.png-f84b590d20143b6e2c8a82165c029463.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 diff --git a/assets/graphics/mushroom_32x64.png b/assets/graphics/mushroom_32x64.png new file mode 100644 index 0000000..9dca2d0 Binary files /dev/null and b/assets/graphics/mushroom_32x64.png differ diff --git a/assets/graphics/mushroom_32x64.png.import b/assets/graphics/mushroom_32x64.png.import new file mode 100644 index 0000000..916f3b3 --- /dev/null +++ b/assets/graphics/mushroom_32x64.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dkba2pxo8d64q" +path="res://.godot/imported/mushroom_32x64.png-a759d6406b94a571b7e81f4511f34730.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/mushroom_32x64.png" +dest_files=["res://.godot/imported/mushroom_32x64.png-a759d6406b94a571b7e81f4511f34730.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 diff --git a/assets/graphics/objects/crate.png b/assets/graphics/objects/crate.png new file mode 100644 index 0000000..2b8bdcd Binary files /dev/null and b/assets/graphics/objects/crate.png differ diff --git a/assets/graphics/objects/crate.png.import b/assets/graphics/objects/crate.png.import new file mode 100644 index 0000000..412d48e --- /dev/null +++ b/assets/graphics/objects/crate.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c47jnqekdb0oe" +path="res://.godot/imported/crate.png-b286bd97caa3cbc59746f2db7de46191.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/objects/crate.png" +dest_files=["res://.godot/imported/crate.png-b286bd97caa3cbc59746f2db7de46191.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 diff --git a/assets/graphics/pickups/coin.png b/assets/graphics/pickups/coin.png new file mode 100644 index 0000000..01ae33d Binary files /dev/null and b/assets/graphics/pickups/coin.png differ diff --git a/assets/graphics/pickups/coin.png.import b/assets/graphics/pickups/coin.png.import new file mode 100644 index 0000000..d70b295 --- /dev/null +++ b/assets/graphics/pickups/coin.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ckgemxnjysc2c" +path="res://.godot/imported/coin.png-f0b33289d8d72c34d5a0c76da4c0f19c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/pickups/coin.png" +dest_files=["res://.godot/imported/coin.png-f0b33289d8d72c34d5a0c76da4c0f19c.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 diff --git a/assets/graphics/player/pixel_bullet.png b/assets/graphics/player/pixel_bullet.png new file mode 100644 index 0000000..900d030 Binary files /dev/null and b/assets/graphics/player/pixel_bullet.png differ diff --git a/assets/graphics/player/pixel_bullet.png.import b/assets/graphics/player/pixel_bullet.png.import new file mode 100644 index 0000000..4feac7b --- /dev/null +++ b/assets/graphics/player/pixel_bullet.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://gptsl2hav386" +path="res://.godot/imported/pixel_bullet.png-01c62acc6888b411ac23909ce84a381a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/player/pixel_bullet.png" +dest_files=["res://.godot/imported/pixel_bullet.png-01c62acc6888b411ac23909ce84a381a.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 diff --git a/assets/graphics/veg_32x32.png b/assets/graphics/veg_32x32.png new file mode 100644 index 0000000..4e09fa9 Binary files /dev/null and b/assets/graphics/veg_32x32.png differ diff --git a/assets/graphics/veg_32x32.png.import b/assets/graphics/veg_32x32.png.import new file mode 100644 index 0000000..3b8d035 --- /dev/null +++ b/assets/graphics/veg_32x32.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://csakuf3siypsi" +path="res://.godot/imported/veg_32x32.png-6e1e0a798898a3640b16dba9a1b34321.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/veg_32x32.png" +dest_files=["res://.godot/imported/veg_32x32.png-6e1e0a798898a3640b16dba9a1b34321.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 diff --git a/project.godot b/project.godot index e33700a..de7123f 100644 --- a/project.godot +++ b/project.godot @@ -15,6 +15,14 @@ run/main_scene="uid://bjk7nrcwo0ikb" config/features=PackedStringArray("4.4", "Forward Plus") config/icon="res://icon.svg" +[display] + +window/size/viewport_width=320 +window/size/viewport_height=180 +window/size/window_width_override=960 +window/size/window_height_override=540 +window/stretch/mode="viewport" + [input] ForcePush={ diff --git a/scenes/bullet.tscn b/scenes/bullet.tscn index 3fefc5a..e40b7a2 100644 --- a/scenes/bullet.tscn +++ b/scenes/bullet.tscn @@ -1,12 +1,15 @@ -[gd_scene load_steps=3 format=3 uid="uid://bgwa5osciu6kj"] +[gd_scene load_steps=4 format=3 uid="uid://bgwa5osciu6kj"] [ext_resource type="Script" uid="uid://bemhplfq3bapd" path="res://scripts/bullet.gd" id="1_mkf8s"] +[ext_resource type="Texture2D" uid="uid://gptsl2hav386" path="res://assets/graphics/player/pixel_bullet.png" id="2_y25gk"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_h1aey"] radius = 7.0 height = 32.0 [node name="bullet" type="Area2D"] +z_index = 2 +scale = Vector2(0.599998, 0.56) script = ExtResource("1_mkf8s") metadata/_edit_group_ = true @@ -15,4 +18,9 @@ rotation = 1.55509 shape = SubResource("CapsuleShape2D_h1aey") debug_color = Color(0.849979, 0, 0.312876, 0.42) +[node name="Sprite2D" type="Sprite2D" parent="."] +position = Vector2(6.66668, 5.35714) +scale = Vector2(0.199997, 0.199997) +texture = ExtResource("2_y25gk") + [connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/scenes/coin.tscn b/scenes/coin.tscn new file mode 100644 index 0000000..fcf20d1 --- /dev/null +++ b/scenes/coin.tscn @@ -0,0 +1,114 @@ +[gd_scene load_steps=17 format=3 uid="uid://4eqy4vr3njwo"] + +[ext_resource type="Texture2D" uid="uid://ckgemxnjysc2c" path="res://assets/graphics/pickups/coin.png" id="1_rwqht"] +[ext_resource type="Script" uid="uid://cervcsnoq87m5" path="res://scripts/coin.gd" id="2_i64fm"] + +[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": &"idle", +"speed": 10.0 +}] + +[sub_resource type="CircleShape2D" id="CircleShape2D_ssuvv"] +radius = 5.0 + +[node name="coin" type="Area2D"] +script = ExtResource("2_i64fm") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +texture_filter = 1 +sprite_frames = SubResource("SpriteFrames_ls27i") +animation = &"idle" +autoplay = "idle" +frame_progress = 0.242927 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_ssuvv") + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/scenes/crate.tscn b/scenes/crate.tscn index b189c95..5bdf53c 100644 --- a/scenes/crate.tscn +++ b/scenes/crate.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=3 format=3 uid="uid://cm72yvkbgso3"] +[gd_scene load_steps=4 format=3 uid="uid://cm72yvkbgso3"] [ext_resource type="Script" uid="uid://caikxm70kr5wu" path="res://scripts/crate.gd" id="1_b66cd"] +[ext_resource type="Texture2D" uid="uid://c47jnqekdb0oe" path="res://assets/graphics/objects/crate.png" id="2_dwt0d"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_uwrxv"] size = Vector2(82, 52) @@ -11,7 +12,13 @@ script = ExtResource("1_b66cd") metadata/_edit_group_ = true [node name="CollisionShape2D" type="CollisionShape2D" parent="."] -position = Vector2(4, 0) -rotation = 0.50364 +position = Vector2(-0.0187993, -3.99996) +rotation = 0.00242299 +scale = Vector2(0.310329, 0.481334) shape = SubResource("RectangleShape2D_uwrxv") debug_color = Color(0.920063, 0.281624, 0, 0.42) + +[node name="Sprite2D" type="Sprite2D" parent="."] +position = Vector2(-0.008033, -1.70919) +scale = Vector2(0.0916374, 0.0915298) +texture = ExtResource("2_dwt0d") diff --git a/scenes/game.tscn b/scenes/game.tscn index 74835ef..5500ad0 100644 --- a/scenes/game.tscn +++ b/scenes/game.tscn @@ -1,69 +1,412 @@ -[gd_scene load_steps=11 format=4 uid="uid://bjk7nrcwo0ikb"] +[gd_scene load_steps=17 format=4 uid="uid://bjk7nrcwo0ikb"] [ext_resource type="Script" uid="uid://bc6rpr127gn6l" path="res://scripts/gamecontroller.gd" id="1_lnu2h"] [ext_resource type="PackedScene" uid="uid://cm72yvkbgso3" path="res://scenes/crate.tscn" id="2_lbhrr"] [ext_resource type="PackedScene" uid="uid://bbg4idgjqm8wr" path="res://scenes/player.tscn" id="2_lnu2h"] [ext_resource type="Script" uid="uid://slrv7nc7hjkl" path="res://scripts/scene_manager.gd" id="2_p57ef"] [ext_resource type="PackedScene" uid="uid://d1gmq2hler2x3" path="res://scenes/trigger.tscn" id="2_yqjtg"] +[ext_resource type="Texture2D" uid="uid://b2djs54a544mi" path="res://assets/graphics/backgrounds/forestbackground.png" id="3_0tnpc"] [ext_resource type="Texture2D" uid="uid://lqv0pjykcj6s" path="res://assets/graphics/tilemaps/Terrain (32x32).png" id="3_p57ef"] +[ext_resource type="Texture2D" uid="uid://c7jv76bxbxvbh" path="res://assets/graphics/backgrounds/Additional Sky.png" id="3_vtaks"] +[ext_resource type="Texture2D" uid="uid://dkba2pxo8d64q" path="res://assets/graphics/mushroom_32x64.png" id="5_vtaks"] +[ext_resource type="Texture2D" uid="uid://csakuf3siypsi" path="res://assets/graphics/veg_32x32.png" id="6_kvpfn"] +[ext_resource type="PackedScene" uid="uid://4eqy4vr3njwo" path="res://scenes/coin.tscn" id="11_kvpfn"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_u5sy4"] 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/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 +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/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, -6.12313, 16, -16, 7.08698) +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, 8.83945, 7.19564, 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, 9.18995, 7.89663, 16, -6.12313, 16, -16, 7.08698) +4:2/0/terrains_peering_bit/top_side = 0 6:3/0 = 0 +6:3/0/terrain_set = 0 +6:3/0/terrain = 0 +6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:3/0/terrains_peering_bit/right_side = 0 +6:3/0/terrains_peering_bit/bottom_side = 0 +6:3/0/terrains_peering_bit/top_side = 0 +6:3/0/terrains_peering_bit/top_right_corner = 0 7:3/0 = 0 +7:3/0/terrain_set = 0 +7:3/0/terrain = 0 +7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +7:3/0/terrains_peering_bit/bottom_side = 0 +7:3/0/terrains_peering_bit/left_side = 0 +7:3/0/terrains_peering_bit/top_left_corner = 0 +7:3/0/terrains_peering_bit/top_side = 0 9:3/0 = 0 +9:3/0/terrain_set = 0 +9:3/0/terrain = 0 +9:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +9:3/0/terrains_peering_bit/right_side = 0 +9:3/0/terrains_peering_bit/bottom_side = 0 +9:3/0/terrains_peering_bit/bottom_left_corner = 0 +9:3/0/terrains_peering_bit/left_side = 0 10:3/0 = 0 +10:3/0/terrain_set = 0 +10:3/0/terrain = 0 +10:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +10:3/0/terrains_peering_bit/right_side = 0 +10:3/0/terrains_peering_bit/bottom_right_corner = 0 +10:3/0/terrains_peering_bit/bottom_side = 0 +10:3/0/terrains_peering_bit/left_side = 0 12:3/0 = 0 +12:3/0/terrain_set = 0 +12:3/0/terrain = 0 +12:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +12:3/0/terrains_peering_bit/right_side = 0 +12:3/0/terrains_peering_bit/bottom_side = 0 +12:3/0/terrains_peering_bit/top_side = 0 13:3/0 = 0 +13:3/0/terrain_set = 0 +13:3/0/terrain = 0 +13:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +13:3/0/terrains_peering_bit/right_side = 0 +13:3/0/terrains_peering_bit/bottom_side = 0 +13:3/0/terrains_peering_bit/left_side = 0 15:3/0 = 0 +15:3/0/terrain_set = 0 +15:3/0/terrain = 0 +15:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +15:3/0/terrains_peering_bit/right_side = 0 +15:3/0/terrains_peering_bit/bottom_side = 0 16:3/0 = 0 +16:3/0/terrain_set = 0 +16:3/0/terrain = 0 +16:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +16:3/0/terrains_peering_bit/bottom_side = 0 +16:3/0/terrains_peering_bit/left_side = 0 0:4/0 = 0 +0:4/0/terrain_set = 0 +0:4/0/terrain = 0 +0:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -7.70035, 16, -16, 7.61272) +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, 9.71568, 9.12336, 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, 9.18995, 7.89663, 16, -6.12313, 16, -16, 7.08698) 6:4/0 = 0 +6:4/0/terrain_set = 0 +6:4/0/terrain = 0 +6:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:4/0/terrains_peering_bit/right_side = 0 +6:4/0/terrains_peering_bit/bottom_right_corner = 0 +6:4/0/terrains_peering_bit/bottom_side = 0 +6:4/0/terrains_peering_bit/top_side = 0 7:4/0 = 0 +7:4/0/terrain_set = 0 +7:4/0/terrain = 0 +7:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +7:4/0/terrains_peering_bit/bottom_side = 0 +7:4/0/terrains_peering_bit/bottom_left_corner = 0 +7:4/0/terrains_peering_bit/left_side = 0 +7:4/0/terrains_peering_bit/top_side = 0 9:4/0 = 0 +9:4/0/terrain_set = 0 +9:4/0/terrain = 0 +9:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +9:4/0/terrains_peering_bit/right_side = 0 +9:4/0/terrains_peering_bit/left_side = 0 +9:4/0/terrains_peering_bit/top_left_corner = 0 +9:4/0/terrains_peering_bit/top_side = 0 10:4/0 = 0 +10:4/0/terrain_set = 0 +10:4/0/terrain = 0 +10:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +10:4/0/terrains_peering_bit/right_side = 0 +10:4/0/terrains_peering_bit/left_side = 0 +10:4/0/terrains_peering_bit/top_side = 0 +10:4/0/terrains_peering_bit/top_right_corner = 0 12:4/0 = 0 +12:4/0/terrain_set = 0 +12:4/0/terrain = 0 +12:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +12:4/0/terrains_peering_bit/right_side = 0 +12:4/0/terrains_peering_bit/left_side = 0 +12:4/0/terrains_peering_bit/top_side = 0 13:4/0 = 0 +13:4/0/terrain_set = 0 +13:4/0/terrain = 0 +13:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +13:4/0/terrains_peering_bit/bottom_side = 0 +13:4/0/terrains_peering_bit/left_side = 0 +13:4/0/terrains_peering_bit/top_side = 0 15:4/0 = 0 +15:4/0/terrain_set = 0 +15:4/0/terrain = 0 +15:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -7.70035, 16, -16, 7.61272) +15:4/0/terrains_peering_bit/right_side = 0 +15:4/0/terrains_peering_bit/top_side = 0 16:4/0 = 0 +16:4/0/terrain_set = 0 +16:4/0/terrain = 0 +16:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 9.71568, 9.12336, 16, -16, 16) +16:4/0/terrains_peering_bit/left_side = 0 +16:4/0/terrains_peering_bit/top_side = 0 + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_dinhu"] +texture = ExtResource("5_vtaks") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/terrain = 1 +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_kvuet"] +texture = ExtResource("6_kvpfn") +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_gee14"] tile_size = Vector2i(32, 32) +physics_layer_0/collision_layer = 1 +terrain_set_0/mode = 0 +terrain_set_0/terrain_0/name = "LeafyDirt" +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_u5sy4") - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_8cj0n"] -size = Vector2(83, 20) +sources/1 = SubResource("TileSetAtlasSource_dinhu") +sources/2 = SubResource("TileSetAtlasSource_kvuet") [sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_8cj0n"] distance = 15.0 @@ -75,24 +418,34 @@ script = ExtResource("1_lnu2h") unique_name_in_owner = true script = ExtResource("2_p57ef") +[node name="Parallax2D" type="Parallax2D" parent="."] +repeat_size = Vector2(32, 32) +repeat_times = 10 + +[node name="Sprite2D" type="Sprite2D" parent="Parallax2D"] +position = Vector2(180, 82) +texture = ExtResource("3_vtaks") + +[node name="Parallax2D2" type="Parallax2D" parent="."] +scroll_scale = Vector2(1.2, 1) +repeat_size = Vector2(320, 0) + +[node name="Sprite2D" type="Sprite2D" parent="Parallax2D2"] +position = Vector2(159, 296) +texture = ExtResource("3_0tnpc") + [node name="TileMapLayer" type="TileMapLayer" parent="."] texture_filter = 1 -tile_map_data = PackedByteArray("AAAFAAQAAAAAAAAAAAAGAAQAAAABAAAAAAAHAAQAAAACAAAAAAAFAAUAAAAAAAEAAAAFAAYAAAAAAAIAAAAGAAUAAAABAAEAAAAGAAYAAAABAAIAAAAHAAUAAAACAAEAAAAHAAYAAAACAAIAAAA=") +position = Vector2(0, 2) +scale = Vector2(1.02919, 0.998219) +tile_map_data = PackedByteArray("AAAFAAQAAAAAAAAAAAAGAAQAAAABAAAAAAAHAAQAAAACAAAAAAAFAAUAAAAAAAEAAAAFAAYAAAAAAAIAAAAGAAUAAAABAAEAAAAGAAYAAAABAAIAAAAHAAUAAAACAAEAAAAHAAYAAAAHAAMAAAADAAkAAAAAAAAAAAAEAAkAAAACAAAAAAAEAAoAAAAJAAQAAAAFAAoAAAAQAAMAAAAKAA0AAAABAAAAAAALAA4AAAABAAEAAAAMAA8AAAABAAEAAAANAA8AAAABAAEAAAAOABAAAAABAAIAAAAPABAAAAABAAIAAAAPAA8AAAABAAEAAAAOAA8AAAABAAEAAAAOAA4AAAABAAEAAAANAA4AAAABAAEAAAAMAA4AAAABAAEAAAALAA0AAAABAAAAAAANAA0AAAABAAAAAAAMAA0AAAABAAAAAAALAA8AAAABAAEAAAALABAAAAABAAIAAAAMABAAAAABAAIAAAANABAAAAABAAIAAAAKABAAAAABAAIAAAAKAA4AAAABAAEAAAAKAA8AAAABAAEAAAAJAA8AAAAAAAEAAAARAA0AAAABAAAAAAAQAA0AAAABAAAAAAAQAA4AAAABAAEAAAAPAA4AAAABAAEAAAAQAA8AAAABAAEAAAAQABAAAAABAAIAAAARABAAAAABAAIAAAASABAAAAACAAIAAAASAA8AAAACAAEAAAASAA4AAAAKAAAAAAASAA0AAAACAAAAAAAEAA8AAAABAAEAAAAEABAAAAABAAEAAAADABAAAAABAAEAAAACABAAAAABAAEAAAACABEAAAABAAEAAAACABIAAAABAAEAAAADABIAAAABAAEAAAADABMAAAABAAEAAAAEABMAAAABAAEAAAAFABMAAAABAAEAAAAGABMAAAACAAEAAAAGABIAAAAGAAAAAAAHABIAAAACAAIAAAAHABEAAAACAAEAAAAHABAAAAACAAEAAAAGABAAAAABAAEAAAAFABAAAAABAAEAAAAFAA8AAAABAAEAAAAFABEAAAABAAEAAAAEABEAAAABAAEAAAAEABIAAAABAAEAAAADABEAAAABAAEAAAAGABEAAAABAAEAAAAFABIAAAABAAEAAAAOAA0AAAABAAAAAAAPAA0AAAABAAAAAAARAA4AAAABAAEAAAARAA8AAAABAAEAAAAOAAUAAAAAAAQAAAAPAAUAAAAJAAEAAAAPAAQAAAAAAAAAAAAQAAQAAAABAAAAAAARAAQAAAACAAAAAAASAAUAAAACAAAAAAASAAYAAAACAAIAAAARAAYAAAABAAIAAAAQAAYAAAABAAIAAAAPAAYAAAAAAAIAAAAQAAUAAAABAAEAAAARAAUAAAAGAAEAAAANAAkAAAABAAEAAAAMAAgAAAABAAAAAAALAAcAAAAEAAAAAAAKAAYAAAAEAAQAAAAHAAcAAAAPAAQAAAAIAAcAAAAQAAMAAAAIAAgAAAAPAAQAAAAJAAgAAAAKAAMAAAAKAAgAAAABAAAAAAAKAAkAAAAHAAAAAAAKAAoAAAAAAAIAAAAQAAkAAAACAAAAAAAPAAkAAAABAAAAAAAOAAkAAAAGAAEAAAAOAAgAAAACAAAAAAANAAgAAAABAAAAAAALAAgAAAAJAAAAAAAMAAkAAAABAAEAAAALAAkAAAABAAEAAAAJAAkAAAAAAAIAAAAMAAoAAAABAAIAAAANAAoAAAABAAIAAAAOAAoAAAABAAIAAAAPAAoAAAABAAIAAAAQAAoAAAACAAIAAAALAAoAAAABAAIAAAAJAA0AAAABAAAAAAAJAA4AAAAHAAAAAAAJABAAAAAAAAIAAAAHAA8AAAACAAEAAAAGAA8AAAABAAEAAAADAA8AAAABAAEAAAACAA8AAAABAAEAAAABAA8AAAABAAEAAAAAABAAAAAAAAEAAAAAABEAAAAAAAIAAAABABEAAAAHAAAAAAABABAAAAABAAEAAAABABIAAAAAAAEAAAABABMAAAAAAAEAAAACABMAAAABAAEAAAAAAAoAAAAPAAMAAAAAAAsAAAAEAAEAAAAAAAwAAAAEAAEAAAADAAoAAAAKAAQAAAACAAoAAAABAAQAAAABAAoAAAABAAQAAAADAA0AAAABAAAAAAACAA0AAAABAAAAAAABAA0AAAABAAAAAAAAAA4AAAAHAAEAAAD//w4AAAAAAAAAAAD//w8AAAAAAAIAAAAAAA8AAAAHAAAAAAACAA4AAAABAAEAAAAEAA0AAAABAAAAAAAEAA4AAAABAAEAAAADAA4AAAABAAEAAAAHAA4AAAAGAAAAAAAIAA4AAAABAAIAAAAIAA0AAAABAAAAAAAFAAsAAAAEAAIAAAAVAAIAAAAEAAAAAAAVAAMAAAAPAAQAAAAWAAMAAAAQAAMAAAAWAAQAAAAEAAEAAAAWAAUAAAAEAAEAAAAWAAYAAAAEAAEAAAAWAAcAAAAEAAEAAAAWAAgAAAAEAAEAAAAWAAkAAAAEAAEAAAAWAAoAAAAEAAIAAAAWABYAAAAEAAQAAAATAA4AAAACAAQAAAAUAA8AAAAAAAQAAAAVAA8AAAAQAAMAAAAVABAAAAAEAAIAAAAWABMAAAAEAAAAAAAWABQAAAAMAAQAAAAFAA0AAAABAAAAAAAGAA0AAAABAAAAAAAHAA0AAAABAAAAAAAAAA0AAAAGAAQAAAAFAA4AAAABAAEAAAABAA4AAAABAAEAAAAGAA4AAAABAAEAAAAQABQAAAABAAQAAAARABQAAAABAAQAAAASABQAAAABAAQAAAATABQAAAABAAQAAAAUABQAAAABAAQAAAAVABQAAAABAAQAAAAXABQAAAABAAQAAAAYABQAAAABAAQAAAAZABQAAAABAAQAAAAaABQAAAABAAQAAAAbABQAAAABAAQAAAAcABQAAAABAAQAAAAdABQAAAABAAQAAAAeABQAAAABAAQAAAAfABQAAAACAAQAAAAPABQAAAABAAQAAAAOABQAAAABAAQAAAANABQAAAABAAQAAAAMABQAAAABAAQAAAALABQAAAABAAQAAAAKABQAAAABAAQAAAAJABQAAAABAAQAAAAIABQAAAABAAQAAAAHABQAAAABAAQAAAAGABQAAAAJAAQAAAAFABQAAAABAAIAAAAEABQAAAABAAIAAAADABQAAAABAAIAAAACABQAAAABAAIAAAABABQAAAAKAAQAAAAAABQAAAABAAQAAAD//xQAAAABAAQAAAD+/xQAAAABAAQAAAD9/xQAAAABAAQAAAD8/xQAAAABAAQAAAD7/xQAAAABAAQAAAD6/xQAAAAAAAQAAAAMAAwAAgAAAAAAAAAPAAwAAgAAAAAAAAAVAA4AAgAAAAAAAAAaABMAAgAAAAAAAAAIABMAAgAAAAAAAAAHAAwAAgAAAAAAAAATABMAAgAAAAAAAAARABMAAQAAAAEAAAARABIAAQAAAAAAAAAeABMAAQAAAAEAAAAeABIAAQAAAAAAAAA=") tile_set = SubResource("TileSet_gee14") -[node name="StaticBody2D" type="StaticBody2D" parent="."] -position = Vector2(205, 132) -metadata/_edit_group_ = true - -[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"] -position = Vector2(2.5, 7) -shape = SubResource("RectangleShape2D_8cj0n") - [node name="crate" parent="." instance=ExtResource("2_lbhrr")] position = Vector2(272, -97) [node name="world-boundary" type="StaticBody2D" parent="."] -position = Vector2(488, 645) +position = Vector2(488, 761) metadata/_edit_group_ = true [node name="CollisionShape2D" type="CollisionShape2D" parent="world-boundary"] @@ -115,4 +468,27 @@ position = Vector2(274, -216) [node name="player_hurt" parent="triggers" instance=ExtResource("2_yqjtg")] position = Vector2(1106, 604) +[node name="coins" type="Node" parent="."] + +[node name="coin" parent="coins" instance=ExtResource("11_kvpfn")] +position = Vector2(287, 115) + +[node name="coin2" parent="coins" instance=ExtResource("11_kvpfn")] +position = Vector2(287, 188) + +[node name="coin3" parent="coins" instance=ExtResource("11_kvpfn")] +position = Vector2(435, 238) + +[node name="coin4" parent="coins" instance=ExtResource("11_kvpfn")] +position = Vector2(595, 397) + +[node name="coin5" parent="coins" instance=ExtResource("11_kvpfn")] +position = Vector2(45, 300) + +[node name="coin6" parent="coins" instance=ExtResource("11_kvpfn")] +position = Vector2(701, 461) + +[node name="crate5" parent="." instance=ExtResource("2_lbhrr")] +position = Vector2(101, 405) + [connection signal="areaTriggerSignal" from="triggers/player_hurt" to="." method="_on_area_2d_area_trigger_signal"] diff --git a/scenes/player.tscn b/scenes/player.tscn index 31351ce..a3766d3 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -211,4 +211,7 @@ autoplay = "idle" frame = 1 frame_progress = 1.0 +[node name="Camera2D" type="Camera2D" parent="."] +offset = Vector2(0, -30) + [connection signal="animation_finished" from="PlayerAnimation" to="." method="_on_animation_finished"] diff --git a/scripts/bullet.gd b/scripts/bullet.gd index 0aa6bda..33c38c3 100644 --- a/scripts/bullet.gd +++ b/scripts/bullet.gd @@ -1,10 +1,15 @@ class_name Bullet extends Area2D +@onready var sprite_2d: Sprite2D = $Sprite2D -var speed: float = 700 +var speed: float = 500 signal bulletDamageSignal(target: Node2D, bullet: Node2D) func setSpeed(val: float): speed = val + if val > 0: + sprite_2d.flip_h = true + else: + sprite_2d.flip_h = false func _physics_process(delta: float) -> void: position += transform.x * speed * delta diff --git a/scripts/coin.gd b/scripts/coin.gd new file mode 100644 index 0000000..ac58ee6 --- /dev/null +++ b/scripts/coin.gd @@ -0,0 +1,7 @@ +class_name Coin extends Area2D + +signal coin_collected(coin: Coin) + +func _on_body_entered(body: Node2D) -> void: + if body is Player: + coin_collected.emit(self) diff --git a/scripts/coin.gd.uid b/scripts/coin.gd.uid new file mode 100644 index 0000000..8cb2ca1 --- /dev/null +++ b/scripts/coin.gd.uid @@ -0,0 +1 @@ +uid://cervcsnoq87m5 diff --git a/scripts/gamecontroller.gd b/scripts/gamecontroller.gd index 8ff770d..d8aea33 100644 --- a/scripts/gamecontroller.gd +++ b/scripts/gamecontroller.gd @@ -2,16 +2,6 @@ extends Node2D signal playerDamage -# Called when the node enters the scene tree for the first time. -func _ready() -> void: - pass # Replace with function body. - - -# Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta: float) -> void: - pass - - func _on_area_2d_area_trigger_signal(effect: String, body: Node2D) -> void: if body.name == "world-boundary": return @@ -20,6 +10,8 @@ func _on_area_2d_area_trigger_signal(effect: String, body: Node2D) -> void: body.health -= 1 print(body.health) return + if body is Player: + return print("GC sees trigger " + effect + " on " + body.name) body.queue_free() @@ -27,3 +19,6 @@ func bulletDamage(target: Node2D, bullet: Node2D): print("game controller sees hit") target.queue_free() bullet.visible = false + +func coin_collected(coin: Coin): + coin.queue_free() diff --git a/scripts/player.gd b/scripts/player.gd index dfa36e6..3e50396 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -23,6 +23,7 @@ var state: State = State.IDLE var facing: FaceDirection = FaceDirection.RIGHT var pushTarget: Object var pushEnabled: bool = false +var score = 0 func _physics_process(delta: float) -> void: handle_input(delta) diff --git a/scripts/scene_manager.gd b/scripts/scene_manager.gd index 516ed44..81b0f82 100644 --- a/scripts/scene_manager.gd +++ b/scripts/scene_manager.gd @@ -3,6 +3,7 @@ class_name SceneManager extends Node2D const BulletScn = preload("res://scenes/bullet.tscn") @onready var game: Node2D = $".." @onready var triggers: Node2D = $"../triggers" +@onready var coins: Node = $"../coins" var bullets: Array[Bullet] = [] const MAX_BULLETS = 10 @@ -13,6 +14,10 @@ func _ready() -> void: for obj in triggers.get_children(): if obj is Trigger: obj.areaTriggerSignal.connect(game._on_area_2d_area_trigger_signal) + if coins: + for obj in coins.get_children(): + if obj is Coin: + obj.coin_collected.connect(game.coin_collected) # makes and recycles bullets func bulletFactory() -> Bullet: