diff --git a/assets/Graphics/Terrains/forestbackground.png b/assets/Graphics/Terrains/forestbackground.png new file mode 100644 index 0000000..5f37aa6 Binary files /dev/null and b/assets/Graphics/Terrains/forestbackground.png differ diff --git a/assets/Graphics/Terrains/forestbackground.png.import b/assets/Graphics/Terrains/forestbackground.png.import new file mode 100644 index 0000000..17f2644 --- /dev/null +++ b/assets/Graphics/Terrains/forestbackground.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cw22wa750snvu" +path="res://.godot/imported/forestbackground.png-b4549c352e40e418b9bbffe18c651aa9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/Graphics/Terrains/forestbackground.png" +dest_files=["res://.godot/imported/forestbackground.png-b4549c352e40e418b9bbffe18c651aa9.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/Terrains/forestsky.png b/assets/Graphics/Terrains/forestsky.png new file mode 100644 index 0000000..407c6d4 Binary files /dev/null and b/assets/Graphics/Terrains/forestsky.png differ diff --git a/assets/Graphics/Terrains/forestsky.png.import b/assets/Graphics/Terrains/forestsky.png.import new file mode 100644 index 0000000..5e10f07 --- /dev/null +++ b/assets/Graphics/Terrains/forestsky.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d455xj0ubatl" +path="res://.godot/imported/forestsky.png-12865c63115ec1ac90b24768f20bfe7a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/Graphics/Terrains/forestsky.png" +dest_files=["res://.godot/imported/forestsky.png-12865c63115ec1ac90b24768f20bfe7a.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/Terrains/mushroom_32x64.png b/assets/Graphics/Terrains/mushroom_32x64.png new file mode 100644 index 0000000..b7954b0 Binary files /dev/null and b/assets/Graphics/Terrains/mushroom_32x64.png differ diff --git a/assets/Graphics/Terrains/mushroom_32x64.png.import b/assets/Graphics/Terrains/mushroom_32x64.png.import new file mode 100644 index 0000000..4a010ae --- /dev/null +++ b/assets/Graphics/Terrains/mushroom_32x64.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dsdex4bhbqyyc" +path="res://.godot/imported/mushroom_32x64.png-c3f9f52b629500fe4bebab09b17b1cf7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/Graphics/Terrains/mushroom_32x64.png" +dest_files=["res://.godot/imported/mushroom_32x64.png-c3f9f52b629500fe4bebab09b17b1cf7.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/Terrains/spookytrees.png b/assets/Graphics/Terrains/spookytrees.png new file mode 100644 index 0000000..cc82f88 Binary files /dev/null and b/assets/Graphics/Terrains/spookytrees.png differ diff --git a/assets/Graphics/Terrains/spookytrees.png.import b/assets/Graphics/Terrains/spookytrees.png.import new file mode 100644 index 0000000..43103fc --- /dev/null +++ b/assets/Graphics/Terrains/spookytrees.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://n3w5k33xpanb" +path="res://.godot/imported/spookytrees.png-fed75eb0fc0965963ed73b1e2e3e580c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/Graphics/Terrains/spookytrees.png" +dest_files=["res://.godot/imported/spookytrees.png-fed75eb0fc0965963ed73b1e2e3e580c.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/Terrains/veg_32x32.png b/assets/Graphics/Terrains/veg_32x32.png new file mode 100644 index 0000000..4e09fa9 Binary files /dev/null and b/assets/Graphics/Terrains/veg_32x32.png differ diff --git a/assets/Graphics/Terrains/veg_32x32.png.import b/assets/Graphics/Terrains/veg_32x32.png.import new file mode 100644 index 0000000..bbd6f31 --- /dev/null +++ b/assets/Graphics/Terrains/veg_32x32.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cakebjievpyw1" +path="res://.godot/imported/veg_32x32.png-b03ce8366ae550c654f84f8a790ed302.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/Graphics/Terrains/veg_32x32.png" +dest_files=["res://.godot/imported/veg_32x32.png-b03ce8366ae550c654f84f8a790ed302.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..8f7531a --- /dev/null +++ b/assets/Graphics/pickups/coin.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bicxjxy66lxc" +path="res://.godot/imported/coin.png-9531076bca0d127d021373d62d41ada5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/Graphics/pickups/coin.png" +dest_files=["res://.godot/imported/coin.png-9531076bca0d127d021373d62d41ada5.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 cfb4a9e..873ccab 100644 --- a/project.godot +++ b/project.godot @@ -15,6 +15,15 @@ run/main_scene="uid://dc4obqdsdq81h" 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/sharp_corners=true +window/size/window_width_override=960 +window/size/window_height_override=540 +window/stretch/mode="viewport" + [file_customization] folder_colors={ diff --git a/scenes/coin.tscn b/scenes/coin.tscn new file mode 100644 index 0000000..9bd3dc7 --- /dev/null +++ b/scenes/coin.tscn @@ -0,0 +1,113 @@ +[gd_scene load_steps=17 format=3 uid="uid://can1023a02b8a"] + +[ext_resource type="Script" uid="uid://5xeni5cm0285" path="res://scripts/coin.gd" id="1_i64fm"] +[ext_resource type="Texture2D" uid="uid://bicxjxy66lxc" path="res://assets/Graphics/pickups/coin.png" id="1_rwqht"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_i64fm"] +radius = 6.08276 + +[sub_resource type="AtlasTexture" id="AtlasTexture_11l1o"] +atlas = ExtResource("1_rwqht") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_d14el"] +atlas = ExtResource("1_rwqht") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1ikuy"] +atlas = ExtResource("1_rwqht") +region = Rect2(32, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wnlwo"] +atlas = ExtResource("1_rwqht") +region = Rect2(48, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jig8b"] +atlas = ExtResource("1_rwqht") +region = Rect2(64, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xmuha"] +atlas = ExtResource("1_rwqht") +region = Rect2(80, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kfxoj"] +atlas = ExtResource("1_rwqht") +region = Rect2(96, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jsmju"] +atlas = ExtResource("1_rwqht") +region = Rect2(112, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_s0mny"] +atlas = ExtResource("1_rwqht") +region = Rect2(128, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7cc30"] +atlas = ExtResource("1_rwqht") +region = Rect2(144, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_rojmm"] +atlas = ExtResource("1_rwqht") +region = Rect2(160, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ls27i"] +atlas = ExtResource("1_rwqht") +region = Rect2(176, 0, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_ssuvv"] +animations = [{ +"frames": [{ +"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") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ls27i") +}], +"loop": true, +"name": &"idle", +"speed": 12.0 +}] + +[node name="Area2D" type="Area2D"] +script = ExtResource("1_i64fm") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_i64fm") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +texture_filter = 1 +sprite_frames = SubResource("SpriteFrames_ssuvv") +animation = &"idle" +autoplay = "idle" + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/scenes/game.tscn b/scenes/game.tscn index a29ded2..35c85df 100644 --- a/scenes/game.tscn +++ b/scenes/game.tscn @@ -1,67 +1,404 @@ -[gd_scene load_steps=12 format=4 uid="uid://dc4obqdsdq81h"] +[gd_scene load_steps=20 format=4 uid="uid://dc4obqdsdq81h"] [ext_resource type="Script" uid="uid://dflv3rb4v8c0r" path="res://scripts/gamecontroller.gd" id="1_lnu2h"] [ext_resource type="Script" uid="uid://lbasdkinbtif" path="res://scripts/scene_manager.gd" id="2_p57ef"] [ext_resource type="Texture2D" uid="uid://cfghfv0tk8mvk" path="res://assets/Graphics/Terrains/Terrain (32x32).png" id="2_u5sy4"] +[ext_resource type="Texture2D" uid="uid://d455xj0ubatl" path="res://assets/Graphics/Terrains/forestsky.png" id="2_vtaks"] +[ext_resource type="Texture2D" uid="uid://cakebjievpyw1" path="res://assets/Graphics/Terrains/veg_32x32.png" id="3_gee14"] +[ext_resource type="Texture2D" uid="uid://cw22wa750snvu" path="res://assets/Graphics/Terrains/forestbackground.png" id="3_kvpfn"] [ext_resource type="PackedScene" uid="uid://dm0s1wei11x43" path="res://scenes/crate.tscn" id="3_lbhrr"] +[ext_resource type="Texture2D" uid="uid://dsdex4bhbqyyc" path="res://assets/Graphics/Terrains/mushroom_32x64.png" id="4_0tnpc"] +[ext_resource type="Texture2D" uid="uid://n3w5k33xpanb" path="res://assets/Graphics/Terrains/spookytrees.png" id="4_dinhu"] [ext_resource type="PackedScene" uid="uid://bu03yhhfncspe" path="res://scenes/trigger.tscn" id="4_iywne"] [ext_resource type="PackedScene" uid="uid://dgf4ypom7mnn4" path="res://scenes/player.tscn" id="4_lbhrr"] [ext_resource type="PackedScene" uid="uid://cc7r60jbw6uyo" path="res://scenes/bullet.tscn" id="5_iywne"] +[ext_resource type="PackedScene" uid="uid://can1023a02b8a" path="res://scenes/coin.tscn" id="13_kvuet"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_gee14"] texture = ExtResource("2_u5sy4") 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/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 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/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, 4.77946, 13.3825, 13.3825, 8.2844, 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, 6.05399, 12.7452, 12.4266, 7.64714, 16, -5.41672, 16, -12.7452, 12.4266, -16, 1.91179) +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.31863, -16, 0, 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(3.50494, -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, -2.86768, -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, -2.86768, -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, 0.31863, -16, 0, 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, -2.86768, -16, -1.59315) +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, -5.09809, 16, -13.0639, 13.0639, -16, 5.09809) +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, 4.77946, 13.3825, 13.3825, 8.2844, 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.31863, -16, 0, 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(3.50494, -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, 2.86768, 16, 2.54905, 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, 2.86768, 16, 2.54905, 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, 2.86768, 16, 2.54905, 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(3.50494, -16, 16, -16, 16, 16, 2.54905, 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, -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(-16, -16, 16, -16, 16, 4.77946, 13.3825, 13.3825, 8.2844, 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_0tnpc"] +texture = ExtResource("3_gee14") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/terrain = 1 + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_vtaks"] +texture = ExtResource("4_0tnpc") +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="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 = "leafygreen" +terrain_set_0/terrain_0/color = Color(0.5, 0.34375, 0.25, 1) +terrain_set_0/terrain_1/name = "vegie" +terrain_set_0/terrain_1/color = Color(0.5, 0.4375, 0.25, 1) sources/0 = SubResource("TileSetAtlasSource_gee14") +sources/1 = SubResource("TileSetAtlasSource_0tnpc") +sources/2 = SubResource("TileSetAtlasSource_vtaks") [sub_resource type="RectangleShape2D" id="RectangleShape2D_8cj0n"] size = Vector2(60, 20) @@ -71,8 +408,32 @@ size = Vector2(60, 20) [node name="Game" type="Node2D"] script = ExtResource("1_lnu2h") +[node name="Parallax2D" type="Parallax2D" parent="."] +repeat_size = Vector2(320, 180) + +[node name="Sprite2D" type="Sprite2D" parent="Parallax2D"] +position = Vector2(160, 90) +texture = ExtResource("2_vtaks") + +[node name="ParallaxMidground" type="Parallax2D" parent="."] +repeat_size = Vector2(320, 0) + +[node name="Sprite2D" type="Sprite2D" parent="ParallaxMidground"] +position = Vector2(160, 300) +texture = ExtResource("3_kvpfn") + +[node name="Forground" type="Parallax2D" parent="."] +scroll_scale = Vector2(1.1, 1) +repeat_size = Vector2(640, 0) + +[node name="Sprite2D" type="Sprite2D" parent="Forground"] +texture_filter = 1 +position = Vector2(160, 310) +texture = ExtResource("4_dinhu") + [node name="TileMapLayer" type="TileMapLayer" parent="."] -tile_map_data = PackedByteArray("AAARAAsAAAAEAAQAAAASAAsAAAAEAAQAAAATAAsAAAAEAAQAAAAQAAsAAAAEAAQAAAAPAAsAAAAEAAQAAAAUAAsAAAAEAAQAAAA=") +texture_filter = 1 +tile_map_data = PackedByteArray("AAAPAAsAAAAGAAEAAAAQAAsAAAABAAAAAAARAAsAAAABAAAAAAASAAsAAAABAAAAAAATAAsAAAABAAAAAAAUAAsAAAACAAAAAAAXAAkAAAAAAAEAAAAXAAoAAAAAAAEAAAAXAAsAAAAGAAMAAAAYAAsAAAABAAIAAAAZAAsAAAACAAIAAAAZAAoAAAAHAAMAAAAZAAkAAAACAAEAAAAYAAkAAAAGAAAAAAAYAAoAAAAGAAAAAAAXAAgAAAAAAAAAAAAYAAgAAAABAAAAAAAZAAgAAAACAAAAAAAaAA4AAAAAAAAAAAAbAA4AAAABAAAAAAAcAA4AAAACAAAAAAAWABAAAAAAAAAAAAAXABAAAAABAAAAAAAYABAAAAABAAAAAAAZABAAAAABAAAAAAAaABAAAAAHAAEAAAAWABEAAAAAAAIAAAAXABEAAAABAAIAAAAYABEAAAABAAIAAAAZABEAAAABAAIAAAAaABEAAAABAAIAAAAbABEAAAABAAIAAAAbABAAAAAGAAAAAAAaAA8AAAAAAAEAAAAbAA8AAAAGAAAAAAAcAA8AAAAHAAMAAAAcABAAAAAHAAMAAAAcABEAAAACAAIAAAAPAAoAAAACAAAAAAAOAAoAAAAAAAAAAAAOAAsAAAAAAAEAAAAdAAwAAAAAAAQAAAAeAAwAAAACAAQAAAAgAAsAAAAAAAQAAAAhAAsAAAABAAQAAAAiAAsAAAABAAQAAAAjAAsAAAABAAQAAAAkAAsAAAAKAAQAAAAkAAoAAAAAAAAAAAAlAAoAAAACAAAAAAAlAAsAAAACAAIAAAAiAAgAAAAAAAQAAAAjAAgAAAACAAQAAAAdAAgAAAABAAQAAAAeAAgAAAABAAQAAAAfAAgAAAACAAQAAAAcAAgAAAAAAAQAAAAUAAoAAQAAAAAAAAAXAAcAAgAAAAEAAAAXAAYAAgAAAAAAAAAPAAgAAQAAAAAAAAAeAAsAAQAAAAAAAAAaAA0AAQAAAAAAAAAhAAoAAQAAAAAAAAAlAAkAAQAAAAAAAAAjAAcAAQAAAAAAAAAAAAwAAAABAAAAAAABAAwAAAABAAAAAAACAAwAAAABAAAAAAADAAwAAAABAAAAAAAEAAwAAAABAAAAAAAFAAwAAAABAAAAAAAGAAwAAAABAAAAAAAHAAwAAAABAAAAAAAHAA0AAAABAAIAAAAIAA0AAAAHAAAAAAAJAA0AAAAGAAAAAAAKAA0AAAAGAAAAAAALAA0AAAAGAAAAAAAMAA0AAAAGAAAAAAANAA0AAAAGAAAAAAAOAA0AAAAGAAAAAAAIAAwAAAABAAAAAAAJAAwAAAABAAAAAAAKAAwAAAABAAAAAAALAAwAAAABAAAAAAAMAAwAAAABAAAAAAANAAwAAAABAAAAAAAOAAwAAAAHAAEAAAAPAAwAAAAGAAAAAAAQAAwAAAAGAAAAAAACAA0AAAABAAIAAAADAA0AAAABAAIAAAAEAA0AAAABAAIAAAAFAA0AAAABAAIAAAAGAA0AAAAKAAEAAAAGAA4AAAAEAAIAAAABAA0AAAABAAIAAAD//wwAAAAAAAAAAAD//w0AAAAAAAIAAAAAAA0AAAABAAIAAAAIAA4AAAAAAAIAAAAJAA4AAAABAAIAAAAKAA4AAAABAAIAAAALAA4AAAABAAIAAAAMAA4AAAABAAIAAAANAA4AAAABAAIAAAAOAA4AAAABAAIAAAAPAA4AAAACAAIAAAAPAA0AAAAGAAAAAAAQAA0AAAACAAIAAAARAAwAAAABAAIAAAASAAwAAAAHAAAAAAATAAwAAAAGAAAAAAAUAAwAAAAGAAEAAAAVAAwAAAABAAAAAAAWAAwAAAABAAAAAAAXAAwAAAAHAAQAAAAXAA0AAAACAAIAAAATAA0AAAABAAIAAAASAA0AAAAAAAIAAAAUAA0AAAABAAIAAAAVAA0AAAABAAIAAAAWAA0AAAABAAIAAAAMAAgAAAACAAQAAAALAAgAAAAAAAQAAAAOAAYAAAAAAAQAAAAPAAYAAAABAAQAAAAQAAYAAAACAAQAAAATAAUAAAAAAAQAAAAUAAUAAAACAAQAAAA=") tile_set = SubResource("TileSet_0tnpc") [node name="SceneManager" type="Node2D" parent="."] @@ -80,7 +441,7 @@ unique_name_in_owner = true script = ExtResource("2_p57ef") [node name="StaticBody2D" type="StaticBody2D" parent="."] -position = Vector2(576, 369) +position = Vector2(579, 582) scale = Vector2(3.15361, 1.6) metadata/_edit_group_ = true @@ -105,10 +466,10 @@ position = Vector2(435, 324) [node name="triggers" type="Node2D" parent="."] [node name="Area2D" parent="triggers" instance=ExtResource("4_iywne")] -position = Vector2(519, 453) +position = Vector2(117, 694) [node name="Area2D2" parent="triggers" instance=ExtResource("4_iywne")] -position = Vector2(653, 461) +position = Vector2(272, 689) effect = "powerup" [node name="StaticBody2D2" type="StaticBody2D" parent="."] @@ -118,5 +479,22 @@ metadata/_edit_group_ = true position = Vector2(583, 546) shape = SubResource("WorldBoundaryShape2D_u5sy4") +[node name="Coins" type="Node2D" parent="."] +position = Vector2(776, 248) + +[node name="Area2D" parent="Coins" instance=ExtResource("13_kvuet")] + +[node name="Area2D2" parent="Coins" instance=ExtResource("13_kvuet")] +position = Vector2(33, -1) + +[node name="Area2D3" parent="Coins" instance=ExtResource("13_kvuet")] +position = Vector2(-394, 1) + +[node name="Area2D4" parent="Coins" instance=ExtResource("13_kvuet")] +position = Vector2(-279, -64) + +[node name="Area2D5" parent="Coins" instance=ExtResource("13_kvuet")] +position = Vector2(-135, -96) + [connection signal="areatrigger" from="triggers/Area2D" to="." method="_on_areatrigger"] [connection signal="areatrigger" from="triggers/Area2D2" to="." method="_on_areatrigger"] diff --git a/scenes/player.tscn b/scenes/player.tscn index 388f7d2..2267508 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -204,4 +204,7 @@ sprite_frames = SubResource("SpriteFrames_jej6c") animation = &"Falling" autoplay = "Idle" +[node name="Camera2D" type="Camera2D" parent="."] +offset = Vector2(0, -20) + [connection signal="animation_finished" from="PlayerGraphic" to="." method="_on_animation_finished"] diff --git a/scripts/coin.gd b/scripts/coin.gd new file mode 100644 index 0000000..12c3098 --- /dev/null +++ b/scripts/coin.gd @@ -0,0 +1,17 @@ +class_name Coin extends Area2D + +signal coinCollectedSignal(body, coin) + +# 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_body_entered(body: Node2D) -> void: + print ("Coin sees collision") + coinCollectedSignal.emit(body, self) diff --git a/scripts/coin.gd.uid b/scripts/coin.gd.uid new file mode 100644 index 0000000..807dd97 --- /dev/null +++ b/scripts/coin.gd.uid @@ -0,0 +1 @@ +uid://5xeni5cm0285 diff --git a/scripts/gamecontroller.gd b/scripts/gamecontroller.gd index 6fa6aac..2d978e0 100644 --- a/scripts/gamecontroller.gd +++ b/scripts/gamecontroller.gd @@ -1,6 +1,7 @@ extends Node2D +var totalCoinsAvailable = 0 # Called when the node enters the scene tree for the first time. func _ready() -> void: pass # Replace with function body. @@ -19,3 +20,10 @@ func _on_areatrigger(effect, body) -> void: if effect == "powerup": print("power up the player") + +func totalCoinCount(totalCoins): + print("GC knows coin total"+str(totalCoins) ) + totalCoinsAvailable = totalCoins +func coinCollected(body, coin): + print("GC knows coin collected") + coin.queue_free() diff --git a/scripts/scene_manager.gd b/scripts/scene_manager.gd index 47e3c2f..a6051c5 100644 --- a/scripts/scene_manager.gd +++ b/scripts/scene_manager.gd @@ -6,10 +6,17 @@ var totalAllowedBullets = 7 @onready var triggers: Node2D = $"../triggers" @onready var gameController: Node2D = $".." +@onready var coins: Node2D = $"../Coins" func _ready() -> void: for obj in triggers.get_children(): obj.areatrigger.connect(gameController._on_areatrigger) + var coinCount = 0 + for obj in coins.get_children(): + obj.coinCollectedSignal.connect(gameController.coinCollected) + coinCount +=1 + #send the info to game controller + gameController.totalCoinCount(coinCount) #makes bullets func bulletFactory(): var mybullet