diff --git a/august26godotcompkieran/Assets/Graphics/Enemies/slime_green.png b/august26godotcompkieran/Assets/Graphics/Enemies/slime_green.png new file mode 100644 index 0000000..a21cb6f Binary files /dev/null and b/august26godotcompkieran/Assets/Graphics/Enemies/slime_green.png differ diff --git a/august26godotcompkieran/Assets/Graphics/Enemies/slime_green.png.import b/august26godotcompkieran/Assets/Graphics/Enemies/slime_green.png.import new file mode 100644 index 0000000..03b8d90 --- /dev/null +++ b/august26godotcompkieran/Assets/Graphics/Enemies/slime_green.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://lpbq4n22w1ig" +path="res://.godot/imported/slime_green.png-ebdb998e3765d428d6dd56d872c89a71.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Graphics/Enemies/slime_green.png" +dest_files=["res://.godot/imported/slime_green.png-ebdb998e3765d428d6dd56d872c89a71.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/august26godotcompkieran/Assets/Graphics/Pickups/coin.png b/august26godotcompkieran/Assets/Graphics/Pickups/coin.png new file mode 100644 index 0000000..01ae33d Binary files /dev/null and b/august26godotcompkieran/Assets/Graphics/Pickups/coin.png differ diff --git a/august26godotcompkieran/Assets/Graphics/Pickups/coin.png.import b/august26godotcompkieran/Assets/Graphics/Pickups/coin.png.import new file mode 100644 index 0000000..6a94342 --- /dev/null +++ b/august26godotcompkieran/Assets/Graphics/Pickups/coin.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://wpp0ajwperl6" +path="res://.godot/imported/coin.png-0ccc183d0b7e2d6217ce08e6ae3f2f99.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Graphics/Pickups/coin.png" +dest_files=["res://.godot/imported/coin.png-0ccc183d0b7e2d6217ce08e6ae3f2f99.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/august26godotcompkieran/Assets/Graphics/Player/Death/Player Death 64x64.png b/august26godotcompkieran/Assets/Graphics/Player/Death/Player Death 64x64.png new file mode 100644 index 0000000..2e6a1ae Binary files /dev/null and b/august26godotcompkieran/Assets/Graphics/Player/Death/Player Death 64x64.png differ diff --git a/august26godotcompkieran/Assets/Graphics/Player/Death/Player Death 64x64.png.import b/august26godotcompkieran/Assets/Graphics/Player/Death/Player Death 64x64.png.import new file mode 100644 index 0000000..4d40b6b --- /dev/null +++ b/august26godotcompkieran/Assets/Graphics/Player/Death/Player Death 64x64.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://6qj1h70yjivd" +path="res://.godot/imported/Player Death 64x64.png-585c61faad3b9e1142f9ebaa962a0235.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Graphics/Player/Death/Player Death 64x64.png" +dest_files=["res://.godot/imported/Player Death 64x64.png-585c61faad3b9e1142f9ebaa962a0235.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/august26godotcompkieran/Scenes/Coin.tscn b/august26godotcompkieran/Scenes/Coin.tscn new file mode 100644 index 0000000..d9404c8 --- /dev/null +++ b/august26godotcompkieran/Scenes/Coin.tscn @@ -0,0 +1,113 @@ +[gd_scene load_steps=17 format=3 uid="uid://cjv23ykm5q7rf"] + +[ext_resource type="Script" path="res://Sripts/coin.gd" id="1_keqhv"] +[ext_resource type="Texture2D" uid="uid://wpp0ajwperl6" path="res://Assets/Graphics/Pickups/coin.png" id="1_tuil2"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_r7c6j"] +atlas = ExtResource("1_tuil2") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vnnmv"] +atlas = ExtResource("1_tuil2") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_s2g0s"] +atlas = ExtResource("1_tuil2") +region = Rect2(32, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_cs01d"] +atlas = ExtResource("1_tuil2") +region = Rect2(48, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gsf1o"] +atlas = ExtResource("1_tuil2") +region = Rect2(64, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gkdsi"] +atlas = ExtResource("1_tuil2") +region = Rect2(80, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_uxpdn"] +atlas = ExtResource("1_tuil2") +region = Rect2(96, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lmo50"] +atlas = ExtResource("1_tuil2") +region = Rect2(112, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1s51c"] +atlas = ExtResource("1_tuil2") +region = Rect2(128, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7iqrr"] +atlas = ExtResource("1_tuil2") +region = Rect2(144, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7wyft"] +atlas = ExtResource("1_tuil2") +region = Rect2(160, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_58t0w"] +atlas = ExtResource("1_tuil2") +region = Rect2(176, 0, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_6vaah"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_r7c6j") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_vnnmv") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_s2g0s") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_cs01d") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gsf1o") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gkdsi") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_uxpdn") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_lmo50") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1s51c") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_7iqrr") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_7wyft") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_58t0w") +}], +"loop": true, +"name": &"Idle", +"speed": 12.0 +}] + +[sub_resource type="CircleShape2D" id="CircleShape2D_reynp"] +radius = 6.08276 + +[node name="Coin" type="Area2D"] +script = ExtResource("1_keqhv") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +texture_filter = 1 +sprite_frames = SubResource("SpriteFrames_6vaah") +animation = &"Idle" +autoplay = "Idle" + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_reynp") + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/august26godotcompkieran/Scenes/Game.tscn b/august26godotcompkieran/Scenes/Game.tscn index 89fdb3f..156dc11 100644 --- a/august26godotcompkieran/Scenes/Game.tscn +++ b/august26godotcompkieran/Scenes/Game.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=11 format=4 uid="uid://bnrrbkgwh35jy"] +[gd_scene load_steps=13 format=4 uid="uid://bnrrbkgwh35jy"] [ext_resource type="Texture2D" uid="uid://cfqqqoobv1fit" path="res://Assets/Graphics/Environment/Background/forestbackground.png" id="1_02hc3"] [ext_resource type="PackedScene" uid="uid://bq1tvv23y61by" path="res://Scenes/Crate.tscn" id="1_8ldta"] @@ -7,6 +7,8 @@ [ext_resource type="Texture2D" uid="uid://b80n7lhw6e1mh" path="res://Assets/Graphics/Environment/Terrain (32x32).png" id="2_hfhl3"] [ext_resource type="PackedScene" uid="uid://crvsom7i1waff" path="res://Scenes/Player.tscn" id="2_vxspj"] [ext_resource type="PackedScene" uid="uid://cb1km20mpc3ag" path="res://Scenes/Trigger.tscn" id="3_sr8fi"] +[ext_resource type="PackedScene" uid="uid://cjv23ykm5q7rf" path="res://Scenes/Coin.tscn" id="8_6qk41"] +[ext_resource type="PackedScene" uid="uid://dy8nl43lpcmka" path="res://Scenes/Slime.tscn" id="9_tn371"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_kvyqi"] texture = ExtResource("2_hfhl3") @@ -379,6 +381,7 @@ sources/0 = SubResource("TileSetAtlasSource_kvyqi") [node name="World" type="Node2D"] [node name="Background" type="Parallax2D" parent="."] +texture_filter = 1 repeat_size = Vector2(320, 0) metadata/_edit_group_ = true @@ -388,6 +391,7 @@ texture = ExtResource("1_02hc3") metadata/_edit_group_ = true [node name="Sprite2D2" type="Sprite2D" parent="Background"] +texture_filter = 1 position = Vector2(160, 90) texture = ExtResource("2_cpwg1") metadata/_edit_group_ = true @@ -396,8 +400,10 @@ metadata/_edit_group_ = true unique_name_in_owner = true script = ExtResource("1_j03ar") +[node name="Timer" type="Timer" parent="SceneManager"] + [node name="TileMapLayer" type="TileMapLayer" parent="."] -tile_map_data = PackedByteArray("AAD4/wQAAAAHAAEAAAD5/wQAAAAGAAAAAAD6/wQAAAAGAAEAAAD8/wQAAAABAAAAAAD9/wQAAAANAAMAAAD+/wQAAAAQAAMAAADy/wUAAAAAAAQAAADz/wUAAAABAAQAAAD0/wUAAAABAAQAAAD1/wUAAAAKAAQAAAD2/wUAAAAJAAQAAAD3/wUAAAABAAIAAAD4/wUAAAABAAIAAAD5/wUAAAABAAIAAAD6/wUAAAABAAIAAAD7/wUAAAAJAAQAAAD8/wUAAAABAAIAAAD9/wUAAAABAAIAAAD+/wUAAAAMAAQAAAD//wUAAAABAAQAAAAAAAUAAAABAAQAAAABAAUAAAABAAQAAAACAAUAAAABAAQAAAADAAUAAAABAAQAAAAEAAUAAAABAAQAAAAGAAUAAAABAAQAAAAFAAUAAAABAAQAAAAHAAUAAAABAAQAAAAIAAUAAAABAAQAAAANAAUAAAABAAQAAAAMAAUAAAABAAQAAAALAAUAAAABAAQAAAAKAAUAAAABAAQAAAAJAAUAAAABAAQAAAAOAAUAAAACAAQAAAD6/wMAAAACAAAAAAD5/wMAAAAKAAMAAAD4/wMAAAAAAAAAAAD7/wQAAAABAAAAAAD2/wQAAAAGAAEAAAD2/wMAAAACAAEAAAD2/wIAAAACAAAAAAD1/wIAAAAAAAAAAAD1/wMAAAAAAAEAAAD1/wQAAAAAAAEAAAD3/wQAAAAKAAMAAAA=") +tile_map_data = PackedByteArray("AAD4/wQAAAAHAAEAAAD5/wQAAAAGAAAAAAD6/wQAAAAGAAEAAAD8/wQAAAABAAAAAAD9/wQAAAANAAMAAAD+/wQAAAAQAAMAAADz/wUAAAAMAAQAAAD0/wUAAAABAAIAAAD1/wUAAAAKAAQAAAD2/wUAAAAJAAQAAAD3/wUAAAABAAIAAAD4/wUAAAABAAIAAAD5/wUAAAABAAIAAAD6/wUAAAABAAIAAAD7/wUAAAAJAAQAAAD8/wUAAAABAAIAAAD9/wUAAAABAAIAAAD+/wUAAAAMAAQAAAD//wUAAAABAAQAAAAAAAUAAAABAAQAAAABAAUAAAABAAQAAAACAAUAAAABAAQAAAADAAUAAAABAAQAAAAEAAUAAAABAAQAAAAGAAUAAAABAAQAAAAFAAUAAAABAAQAAAAHAAUAAAABAAQAAAAIAAUAAAABAAQAAAANAAUAAAABAAQAAAAMAAUAAAABAAQAAAALAAUAAAABAAQAAAAKAAUAAAABAAQAAAAJAAUAAAABAAQAAAAOAAUAAAABAAQAAAD6/wMAAAACAAAAAAD5/wMAAAAKAAMAAAD4/wMAAAAAAAAAAAD7/wQAAAABAAAAAAD2/wQAAAAGAAEAAAD2/wMAAAACAAEAAAD2/wIAAAACAAAAAAD1/wIAAAAAAAAAAAD1/wMAAAAAAAEAAAD1/wQAAAAHAAEAAAD3/wQAAAAKAAMAAAD0/wQAAAABAAAAAADz/wQAAAANAAMAAADy/wQAAAANAAMAAADx/wQAAAABAAAAAADw/wQAAAAAAAAAAADy/wUAAAAKAAQAAADx/wUAAAAJAAQAAADw/wUAAAAAAAIAAAAPAAUAAAAQAAQAAAASAAQAAAACAAAAAAAQAAUAAAAAAAIAAAARAAUAAAABAAIAAAASAAUAAAACAAIAAAAPAAQAAAAPAAMAAAAQAAQAAAANAAMAAAARAAQAAAAJAAMAAAA=") tile_set = SubResource("TileSet_ge2ih") [node name="BottomWorld" type="StaticBody2D" parent="."] @@ -431,3 +437,27 @@ metadata/_edit_group_ = true [node name="BoxTrapTarget" type="Node2D" parent="."] position = Vector2(321, -49) metadata/_edit_group_ = true + +[node name="coins" type="Node" parent="."] + +[node name="coin" parent="coins" instance=ExtResource("8_6qk41")] +position = Vector2(217, 101) + +[node name="coin2" parent="coins" instance=ExtResource("8_6qk41")] +position = Vector2(231, 87) + +[node name="coin3" parent="coins" instance=ExtResource("8_6qk41")] +position = Vector2(248, 74) + +[node name="coin4" parent="coins" instance=ExtResource("8_6qk41")] +position = Vector2(265, 70) + +[node name="Enemies" type="Node" parent="."] + +[node name="Slime" parent="Enemies" instance=ExtResource("9_tn371")] +position = Vector2(499, 115) + +[node name="Slime2" parent="Enemies" instance=ExtResource("9_tn371")] +position = Vector2(59, 146) + +[connection signal="timeout" from="SceneManager/Timer" to="SceneManager" method="resetworld"] diff --git a/august26godotcompkieran/Scenes/Player.tscn b/august26godotcompkieran/Scenes/Player.tscn index 7389d79..0bf61ca 100644 --- a/august26godotcompkieran/Scenes/Player.tscn +++ b/august26godotcompkieran/Scenes/Player.tscn @@ -1,10 +1,51 @@ -[gd_scene load_steps=28 format=3 uid="uid://crvsom7i1waff"] +[gd_scene load_steps=39 format=3 uid="uid://crvsom7i1waff"] [ext_resource type="Script" path="res://Sripts/player.gd" id="1_jdiv6"] +[ext_resource type="Texture2D" uid="uid://6qj1h70yjivd" path="res://Assets/Graphics/Player/Death/Player Death 64x64.png" id="2_4fy80"] [ext_resource type="Texture2D" uid="uid://csjeohonmkkov" path="res://Assets/Graphics/Player/Idle/Player Idle 48x48.png" id="2_ow1rs"] [ext_resource type="Texture2D" uid="uid://4b3eimvxs4xa" path="res://Assets/Graphics/Player/Jump/player jump 48x48.png" id="3_d7uya"] [ext_resource type="Texture2D" uid="uid://7jk3tlc1nyw2" path="res://Assets/Graphics/Player/Run/player run 48x48.png" id="3_kgjol"] +[sub_resource type="AtlasTexture" id="AtlasTexture_h2ctk"] +atlas = ExtResource("2_4fy80") +region = Rect2(0, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_33q0u"] +atlas = ExtResource("2_4fy80") +region = Rect2(48, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0y4j2"] +atlas = ExtResource("2_4fy80") +region = Rect2(96, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2thpi"] +atlas = ExtResource("2_4fy80") +region = Rect2(144, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_rlvdk"] +atlas = ExtResource("2_4fy80") +region = Rect2(192, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fulye"] +atlas = ExtResource("2_4fy80") +region = Rect2(240, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5bk41"] +atlas = ExtResource("2_4fy80") +region = Rect2(288, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7im3l"] +atlas = ExtResource("2_4fy80") +region = Rect2(336, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kpvqi"] +atlas = ExtResource("2_4fy80") +region = Rect2(384, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_55tgt"] +atlas = ExtResource("2_4fy80") +region = Rect2(432, 0, 48, 48) + [sub_resource type="AtlasTexture" id="AtlasTexture_ogmew"] atlas = ExtResource("2_ow1rs") region = Rect2(0, 0, 48, 48) @@ -93,6 +134,41 @@ region = Rect2(336, 0, 48, 48) animations = [{ "frames": [{ "duration": 1.0, +"texture": SubResource("AtlasTexture_h2ctk") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_33q0u") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0y4j2") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_2thpi") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_rlvdk") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fulye") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_5bk41") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_7im3l") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kpvqi") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_55tgt") +}], +"loop": false, +"name": &"Death", +"speed": 7.0 +}, { +"frames": [{ +"duration": 1.0, "texture": SubResource("AtlasTexture_ogmew") }, { "duration": 1.0, @@ -124,7 +200,7 @@ animations = [{ }], "loop": true, "name": &"Idle", -"speed": 15.0 +"speed": 12.0 }, { "frames": [{ "duration": 1.0, @@ -167,7 +243,7 @@ animations = [{ }], "loop": true, "name": &"Run", -"speed": 15.0 +"speed": 12.0 }] [sub_resource type="CircleShape2D" id="CircleShape2D_t5iiu"] @@ -179,9 +255,9 @@ script = ExtResource("1_jdiv6") texture_filter = 1 position = Vector2(0, -6) sprite_frames = SubResource("SpriteFrames_f8fvt") -animation = &"Jump" +animation = &"Death" autoplay = "Idle" -frame = 1 +frame = 9 frame_progress = 1.0 [node name="CollisionShape2D" type="CollisionShape2D" parent="."] diff --git a/august26godotcompkieran/Scenes/Slime.tscn b/august26godotcompkieran/Scenes/Slime.tscn new file mode 100644 index 0000000..efaeca4 --- /dev/null +++ b/august26godotcompkieran/Scenes/Slime.tscn @@ -0,0 +1,75 @@ +[gd_scene load_steps=9 format=3 uid="uid://dy8nl43lpcmka"] + +[ext_resource type="Script" path="res://Sripts/slime.gd" id="1_2xgu3"] +[ext_resource type="Texture2D" uid="uid://lpbq4n22w1ig" path="res://Assets/Graphics/Enemies/slime_green.png" id="1_6sd47"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_feiyc"] +atlas = ExtResource("1_6sd47") +region = Rect2(0, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jvyy4"] +atlas = ExtResource("1_6sd47") +region = Rect2(24, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_g8dot"] +atlas = ExtResource("1_6sd47") +region = Rect2(48, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_dc6ki"] +atlas = ExtResource("1_6sd47") +region = Rect2(72, 24, 24, 24) + +[sub_resource type="SpriteFrames" id="SpriteFrames_kycl6"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_feiyc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_jvyy4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_g8dot") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_dc6ki") +}], +"loop": true, +"name": &"idle", +"speed": 12.0 +}] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_ujgd7"] +size = Vector2(15, 12.5) + +[node name="Slime" type="Area2D"] +script = ExtResource("1_2xgu3") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +texture_filter = 1 +position = Vector2(0, -2) +scale = Vector2(1.2, 1.2) +sprite_frames = SubResource("SpriteFrames_kycl6") +animation = &"idle" +autoplay = "idle" + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(0, 5.5) +scale = Vector2(1.2, 1.2) +shape = SubResource("RectangleShape2D_ujgd7") + +[node name="CastRight" type="RayCast2D" parent="."] +target_position = Vector2(15, 0) + +[node name="CastLeft" type="RayCast2D" parent="."] +target_position = Vector2(-15, 0) + +[node name="CastFloorRight" type="RayCast2D" parent="."] +position = Vector2(9, 0) +target_position = Vector2(0, 17) + +[node name="CastFloorLeft" type="RayCast2D" parent="."] +position = Vector2(-9, 0) +target_position = Vector2(0, 17) + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/august26godotcompkieran/Sripts/Resources/character_stats.gd b/august26godotcompkieran/Sripts/Resources/character_stats.gd new file mode 100644 index 0000000..cd2505b --- /dev/null +++ b/august26godotcompkieran/Sripts/Resources/character_stats.gd @@ -0,0 +1,5 @@ +class_name CharacterStats extends Resource + +@export var max_health:int = 100 +@export var starting_health:int = 100 +@export var current_health:int = 100 diff --git a/august26godotcompkieran/Sripts/Resources/player.tres b/august26godotcompkieran/Sripts/Resources/player.tres new file mode 100644 index 0000000..3442396 --- /dev/null +++ b/august26godotcompkieran/Sripts/Resources/player.tres @@ -0,0 +1,9 @@ +[gd_resource type="Resource" script_class="CharacterStats" load_steps=2 format=3 uid="uid://sru8awuj2bof"] + +[ext_resource type="Script" path="res://Sripts/Resources/character_stats.gd" id="1_u5owe"] + +[resource] +script = ExtResource("1_u5owe") +max_health = 100 +starting_health = 100 +current_heath = 100 diff --git a/august26godotcompkieran/Sripts/Resources/slime.tres b/august26godotcompkieran/Sripts/Resources/slime.tres new file mode 100644 index 0000000..e87a6c0 --- /dev/null +++ b/august26godotcompkieran/Sripts/Resources/slime.tres @@ -0,0 +1,9 @@ +[gd_resource type="Resource" script_class="CharacterStats" load_steps=2 format=3 uid="uid://b7sfi2frc80hf"] + +[ext_resource type="Script" path="res://Sripts/Resources/character_stats.gd" id="1_arx74"] + +[resource] +script = ExtResource("1_arx74") +max_health = 50 +starting_health = 50 +current_heath = 50 diff --git a/august26godotcompkieran/Sripts/coin.gd b/august26godotcompkieran/Sripts/coin.gd new file mode 100644 index 0000000..9c33f8b --- /dev/null +++ b/august26godotcompkieran/Sripts/coin.gd @@ -0,0 +1,17 @@ +extends Area2D + +signal coincollected +# 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: + if body.is_in_group("Player"): + coincollected.emit() + queue_free() diff --git a/august26godotcompkieran/Sripts/game_controller.gd b/august26godotcompkieran/Sripts/game_controller.gd new file mode 100644 index 0000000..720b329 --- /dev/null +++ b/august26godotcompkieran/Sripts/game_controller.gd @@ -0,0 +1,24 @@ +extends Node + +var coinscollected:int = 0 +var player:Resource + +signal playerdeath +func _ready() -> void: + print("Game Controller is on") + player = load("res://Sripts/Resources/player.tres") + +func coincollected(): + coinscollected +=1 + print("Gamecontroller Coin Collected : "+str(coinscollected) ) +func resetplayer(): + player.current_health = player.max_health + +func playerdamaged(): + player.current_health -= 20 + print("player health is : "+str(player.current_health)) + # is player dead + if player.current_health <=0: + #Death + playerdeath.emit() + diff --git a/august26godotcompkieran/Sripts/player.gd b/august26godotcompkieran/Sripts/player.gd index 7c1d2de..1633a64 100644 --- a/august26godotcompkieran/Sripts/player.gd +++ b/august26godotcompkieran/Sripts/player.gd @@ -19,7 +19,11 @@ var pushTarget var bullet = preload("res://Scenes/Bullet.tscn") - +func killplayer(): + print("dying") + #play death + playerSprite.play("Death") + func _physics_process(delta: float) -> void: # Add the gravity. if not is_on_floor(): diff --git a/august26godotcompkieran/Sripts/scene_manager.gd b/august26godotcompkieran/Sripts/scene_manager.gd index df8bceb..b9cf5e1 100644 --- a/august26godotcompkieran/Sripts/scene_manager.gd +++ b/august26godotcompkieran/Sripts/scene_manager.gd @@ -5,6 +5,10 @@ var bulletPool:Array = [] # crate pool thing var cratePool:Array = [] @onready var box_trap_target: Node2D = $"../BoxTrapTarget" +@onready var coins: Node = $"../coins" +@onready var enemies: Node = $"../Enemies" +@onready var player: CharacterBody2D = $"../CharacterBody2D" +@onready var deathdelay: Timer = $Timer func _ready() -> void: # pool crates @@ -12,6 +16,18 @@ func _ready() -> void: if obj.is_in_group("Pushable"): cratePool.push_back(obj) print("Total crate in play: "+str(cratePool.size() ) ) + for n in coins.get_children(): + # hook up the coincollected signal + print("coin found") + n.coincollected.connect(GameController.coincollected) + # Enemy routine + for n in enemies.get_children(): + if n is Enemy: + #wire up the signal + n.playerdamage.connect(GameController.playerdamaged) + # gamecontroller signals + GameController.playerdeath.connect(killplayer) + func boxTrap(): print("boxTrap active") @@ -46,3 +62,12 @@ func crateFactory(): var myCrate = crate.instantiate() myCrate.add_to_group("Pushable") return myCrate + +func killplayer(): + print("kill player") + player.killplayer() + deathdelay.start(1) + +func resetworld(): + GameController.resetplayer() + get_tree().reload_current_scene() diff --git a/august26godotcompkieran/Sripts/slime.gd b/august26godotcompkieran/Sripts/slime.gd new file mode 100644 index 0000000..29f55b4 --- /dev/null +++ b/august26godotcompkieran/Sripts/slime.gd @@ -0,0 +1,39 @@ +class_name Enemy extends Area2D + +signal playerdamage +@onready var cast_right: RayCast2D = $CastRight +@onready var cast_left: RayCast2D = $CastLeft +@onready var cast_floor_right: RayCast2D = $CastFloorRight +@onready var cast_floor_left: RayCast2D = $CastFloorLeft +const speed = 60 +var direction = 1 +@onready var sprite: AnimatedSprite2D = $AnimatedSprite2D + +# 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: + if cast_right.is_colliding(): + if not cast_right.get_collider().is_in_group("Player"): + direction = -1 + sprite.flip_h = true + position.x += direction * speed * delta + if cast_left.is_colliding(): + if not cast_left.get_collider().is_in_group("Player"): + direction = 1 + sprite.flip_h = false + if not cast_floor_right.is_colliding(): + direction = -1 + sprite.flip_h = true + if not cast_floor_left.is_colliding(): + direction = 1 + sprite.flip_h = false + + +func _on_body_entered(body: Node2D) -> void: + if body.is_in_group("Player"): + playerdamage.emit() + diff --git a/august26godotcompkieran/project.godot b/august26godotcompkieran/project.godot index 18ebfaa..8cf2fad 100644 --- a/august26godotcompkieran/project.godot +++ b/august26godotcompkieran/project.godot @@ -15,6 +15,10 @@ run/main_scene="res://Scenes/Game.tscn" config/features=PackedStringArray("4.3", "Forward Plus") config/icon="res://icon.svg" +[autoload] + +GameController="*res://Sripts/game_controller.gd" + [display] window/size/viewport_width=320