added paralax, etc

This commit is contained in:
stevensoroka 2025-08-25 21:07:20 -04:00
parent 37cc95175e
commit b824c5eb64
No known key found for this signature in database
34 changed files with 870 additions and 29 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

5
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,5 @@
{
"gotoSymbolStack.currentStackPosition": 0,
"gotoSymbolStack.maxStackPosition": 0,
"gotoSymbolStack.filePositionInfo": []
}

BIN
assets/.DS_Store vendored Normal file

Binary file not shown.

BIN
assets/graphics/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 B

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 B

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 675 B

View File

@ -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

View File

@ -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={

View File

@ -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"]

114
scenes/coin.tscn Normal file
View File

@ -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"]

View File

@ -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")

View File

@ -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"]

View File

@ -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"]

View File

@ -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

7
scripts/coin.gd Normal file
View File

@ -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)

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

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

View File

@ -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()

View File

@ -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)

View File

@ -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: