From 753efaa3d34de6bb01b69c694f05272416d8cf87 Mon Sep 17 00:00:00 2001 From: OddlyTimbot Date: Mon, 19 Aug 2024 15:27:40 -0400 Subject: [PATCH] organized coins and enemies --- week6/README.md | 10 ++++ ...lding-a804ef63fe80704a3f88940ecad593fa.cfg | 3 ++ ...lding-d016815bb0b29e5146a614d4a91354ae.cfg | 3 ++ ...state-e196a632ea77e9a0d8baa608f164a4d2.cfg | 2 +- ...state-b6bd7a241034177d7fe082a7597ba8ea.cfg | 2 +- ...state-96b2131180b71dd158e52c5527d22dd4.cfg | 2 +- .../.godot/editor/create_recent.Node | 2 +- .../.godot/editor/editor_layout.cfg | 8 +-- .../.godot/editor/filesystem_cache8 | 25 +++++---- .../.godot/editor/filesystem_update4 | 2 + ...state-c2a7af834e91ff64325daddf58e45dc0.cfg | 2 +- ...lding-c2a7af834e91ff64325daddf58e45dc0.cfg | 2 +- .../.godot/editor/script_editor_cache.cfg | 20 +++---- ...state-9211dc52ac9df169ba4fe77cbc1dc833.cfg | 2 +- ...lding-9211dc52ac9df169ba4fe77cbc1dc833.cfg | 2 +- .../.godot/global_script_class_cache.cfg | 12 +++++ ...-58471ac3a012822d2b91abf3e5c02684.fontdata | Bin 0 -> 8569 bytes ...d.ttf-58471ac3a012822d2b91abf3e5c02684.md5 | 3 ++ ...-282ed1e255c024b87b9bcb82718e7dda.fontdata | Bin 0 -> 8909 bytes ...8.ttf-282ed1e255c024b87b9bcb82718e7dda.md5 | 3 ++ week6/updated_project/.godot/uid_cache.bin | Bin 1188 -> 1295 bytes .../graphics/fonts/PixelOperator8-Bold.ttf | Bin 0 -> 18624 bytes .../fonts/PixelOperator8-Bold.ttf.import | 33 ++++++++++++ .../graphics/fonts/PixelOperator8.ttf | Bin 0 -> 19944 bytes .../graphics/fonts/PixelOperator8.ttf.import | 33 ++++++++++++ week6/updated_project/scenes/game.tscn | 49 +++++++++--------- week6/updated_project/scenes/ui.tscn | 7 ++- week6/updated_project/scripts/badguy.gd | 2 +- week6/updated_project/scripts/coin.gd | 5 +- .../updated_project/scripts/gamecontroller.gd | 13 ++++- 30 files changed, 185 insertions(+), 62 deletions(-) create mode 100644 week6/updated_project/.godot/editor/PixelOperator8-Bold.ttf-58471ac3a012822d2b91abf3e5c02684.fontdata-folding-a804ef63fe80704a3f88940ecad593fa.cfg create mode 100644 week6/updated_project/.godot/editor/PixelOperator8.ttf-282ed1e255c024b87b9bcb82718e7dda.fontdata-folding-d016815bb0b29e5146a614d4a91354ae.cfg create mode 100644 week6/updated_project/.godot/imported/PixelOperator8-Bold.ttf-58471ac3a012822d2b91abf3e5c02684.fontdata create mode 100644 week6/updated_project/.godot/imported/PixelOperator8-Bold.ttf-58471ac3a012822d2b91abf3e5c02684.md5 create mode 100644 week6/updated_project/.godot/imported/PixelOperator8.ttf-282ed1e255c024b87b9bcb82718e7dda.fontdata create mode 100644 week6/updated_project/.godot/imported/PixelOperator8.ttf-282ed1e255c024b87b9bcb82718e7dda.md5 create mode 100644 week6/updated_project/graphics/fonts/PixelOperator8-Bold.ttf create mode 100644 week6/updated_project/graphics/fonts/PixelOperator8-Bold.ttf.import create mode 100644 week6/updated_project/graphics/fonts/PixelOperator8.ttf create mode 100644 week6/updated_project/graphics/fonts/PixelOperator8.ttf.import diff --git a/week6/README.md b/week6/README.md index 12dc688..c810cb9 100644 --- a/week6/README.md +++ b/week6/README.md @@ -8,6 +8,12 @@ Resources do nothing on their own. They must be a property of a node for their d The resoource only gets loaded into memory once. Any nodes referencing a node are accessing the SAME data. This behavior can be changed so that the resource is unique for each node referencing it. +Lessons: + +* Create a script to use as a data object +* Create a resource based on the script for the player, and the enemy +* Learn to load resources + ## Autoload Singletons The scene system in Godot is great for building multiple levels of a game and being able to run each one of them individually during development. However it does have a limitation. @@ -22,6 +28,10 @@ An autoload script is a good place to put any persistent game logic and data, as It is possible that an autoload script can get quite cluttered with information, so a good combination is to use an autoload script and data objects together. +Lessons: + +* Create a script to be the game controller, set it to autoload + ## Relevance to UI A good UI is essentially a graphical representation of the state of the game. Once that state is centralized in one place it becomes easier to make UI that accurately reflects all the data in the game (such as player health, coins collected, points, timers etc.) diff --git a/week6/updated_project/.godot/editor/PixelOperator8-Bold.ttf-58471ac3a012822d2b91abf3e5c02684.fontdata-folding-a804ef63fe80704a3f88940ecad593fa.cfg b/week6/updated_project/.godot/editor/PixelOperator8-Bold.ttf-58471ac3a012822d2b91abf3e5c02684.fontdata-folding-a804ef63fe80704a3f88940ecad593fa.cfg new file mode 100644 index 0000000..e860dd4 --- /dev/null +++ b/week6/updated_project/.godot/editor/PixelOperator8-Bold.ttf-58471ac3a012822d2b91abf3e5c02684.fontdata-folding-a804ef63fe80704a3f88940ecad593fa.cfg @@ -0,0 +1,3 @@ +[folding] + +sections_unfolded=PackedStringArray() diff --git a/week6/updated_project/.godot/editor/PixelOperator8.ttf-282ed1e255c024b87b9bcb82718e7dda.fontdata-folding-d016815bb0b29e5146a614d4a91354ae.cfg b/week6/updated_project/.godot/editor/PixelOperator8.ttf-282ed1e255c024b87b9bcb82718e7dda.fontdata-folding-d016815bb0b29e5146a614d4a91354ae.cfg new file mode 100644 index 0000000..e860dd4 --- /dev/null +++ b/week6/updated_project/.godot/editor/PixelOperator8.ttf-282ed1e255c024b87b9bcb82718e7dda.fontdata-folding-d016815bb0b29e5146a614d4a91354ae.cfg @@ -0,0 +1,3 @@ +[folding] + +sections_unfolded=PackedStringArray() diff --git a/week6/updated_project/.godot/editor/badguy.tscn-editstate-e196a632ea77e9a0d8baa608f164a4d2.cfg b/week6/updated_project/.godot/editor/badguy.tscn-editstate-e196a632ea77e9a0d8baa608f164a4d2.cfg index 1f2772a..738a399 100644 --- a/week6/updated_project/.godot/editor/badguy.tscn-editstate-e196a632ea77e9a0d8baa608f164a4d2.cfg +++ b/week6/updated_project/.godot/editor/badguy.tscn-editstate-e196a632ea77e9a0d8baa608f164a4d2.cfg @@ -172,4 +172,4 @@ Anim={ "zfar": 4000.01, "znear": 0.05 } -selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17140/@Panel@13/@VBoxContainer@14/@HSplitContainer@17/@HSplitContainer@25/@HSplitContainer@33/@VBoxContainer@34/@VSplitContainer@36/@VSplitContainer@62/@VBoxContainer@63/@PanelContainer@110/MainScreen/@CanvasItemEditor@9462/@VSplitContainer@9281/@HSplitContainer@9283/@HSplitContainer@9285/@Control@9286/@SubViewportContainer@9287/@SubViewport@9288/Game/CanvasLayer/UI")]) +selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17140/@Panel@13/@VBoxContainer@14/@HSplitContainer@17/@HSplitContainer@25/@HSplitContainer@33/@VBoxContainer@34/@VSplitContainer@36/@VSplitContainer@62/@VBoxContainer@63/@PanelContainer@110/MainScreen/@CanvasItemEditor@9462/@VSplitContainer@9281/@HSplitContainer@9283/@HSplitContainer@9285/@Control@9286/@SubViewportContainer@9287/@SubViewport@9288/Game/enemies")]) diff --git a/week6/updated_project/.godot/editor/character.tscn-editstate-b6bd7a241034177d7fe082a7597ba8ea.cfg b/week6/updated_project/.godot/editor/character.tscn-editstate-b6bd7a241034177d7fe082a7597ba8ea.cfg index 965daad..85ade8a 100644 --- a/week6/updated_project/.godot/editor/character.tscn-editstate-b6bd7a241034177d7fe082a7597ba8ea.cfg +++ b/week6/updated_project/.godot/editor/character.tscn-editstate-b6bd7a241034177d7fe082a7597ba8ea.cfg @@ -172,4 +172,4 @@ Anim={ "zfar": 4000.01, "znear": 0.05 } -selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17140/@Panel@13/@VBoxContainer@14/@HSplitContainer@17/@HSplitContainer@25/@HSplitContainer@33/@VBoxContainer@34/@VSplitContainer@36/@VSplitContainer@62/@VBoxContainer@63/@PanelContainer@110/MainScreen/@CanvasItemEditor@9462/@VSplitContainer@9281/@HSplitContainer@9283/@HSplitContainer@9285/@Control@9286/@SubViewportContainer@9287/@SubViewport@9288/Game/CanvasLayer/UI")]) +selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17140/@Panel@13/@VBoxContainer@14/@HSplitContainer@17/@HSplitContainer@25/@HSplitContainer@33/@VBoxContainer@34/@VSplitContainer@36/@VSplitContainer@62/@VBoxContainer@63/@PanelContainer@110/MainScreen/@CanvasItemEditor@9462/@VSplitContainer@9281/@HSplitContainer@9283/@HSplitContainer@9285/@Control@9286/@SubViewportContainer@9287/@SubViewport@9288/Game/enemies")]) diff --git a/week6/updated_project/.godot/editor/coin.tscn-editstate-96b2131180b71dd158e52c5527d22dd4.cfg b/week6/updated_project/.godot/editor/coin.tscn-editstate-96b2131180b71dd158e52c5527d22dd4.cfg index ec22c0b..d23210b 100644 --- a/week6/updated_project/.godot/editor/coin.tscn-editstate-96b2131180b71dd158e52c5527d22dd4.cfg +++ b/week6/updated_project/.godot/editor/coin.tscn-editstate-96b2131180b71dd158e52c5527d22dd4.cfg @@ -172,4 +172,4 @@ Anim={ "zfar": 4000.01, "znear": 0.05 } -selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17140/@Panel@13/@VBoxContainer@14/@HSplitContainer@17/@HSplitContainer@25/@HSplitContainer@33/@VBoxContainer@34/@VSplitContainer@36/@VSplitContainer@62/@VBoxContainer@63/@PanelContainer@110/MainScreen/@CanvasItemEditor@9462/@VSplitContainer@9281/@HSplitContainer@9283/@HSplitContainer@9285/@Control@9286/@SubViewportContainer@9287/@SubViewport@9288/Game/CanvasLayer/UI")]) +selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17140/@Panel@13/@VBoxContainer@14/@HSplitContainer@17/@HSplitContainer@25/@HSplitContainer@33/@VBoxContainer@34/@VSplitContainer@36/@VSplitContainer@62/@VBoxContainer@63/@PanelContainer@110/MainScreen/@CanvasItemEditor@9462/@VSplitContainer@9281/@HSplitContainer@9283/@HSplitContainer@9285/@Control@9286/@SubViewportContainer@9287/@SubViewport@9288/Game/enemies")]) diff --git a/week6/updated_project/.godot/editor/create_recent.Node b/week6/updated_project/.godot/editor/create_recent.Node index c0870a5..ff257f8 100644 --- a/week6/updated_project/.godot/editor/create_recent.Node +++ b/week6/updated_project/.godot/editor/create_recent.Node @@ -1,3 +1,4 @@ +Node MarginContainer CanvasLayer Label @@ -6,7 +7,6 @@ VBoxContainer ColorRect RayCast2D Timer -Node CollisionShape2D AnimatedSprite2D Area2D diff --git a/week6/updated_project/.godot/editor/editor_layout.cfg b/week6/updated_project/.godot/editor/editor_layout.cfg index 0f2c5df..3be6b00 100644 --- a/week6/updated_project/.godot/editor/editor_layout.cfg +++ b/week6/updated_project/.godot/editor/editor_layout.cfg @@ -4,7 +4,7 @@ dock_1_selected_tab_idx=0 dock_2_selected_tab_idx=0 dock_3_selected_tab_idx=0 dock_4_selected_tab_idx=0 -dock_5_selected_tab_idx=0 +dock_5_selected_tab_idx=1 dock_6_selected_tab_idx=0 dock_7_selected_tab_idx=0 dock_8_selected_tab_idx=0 @@ -19,15 +19,15 @@ dock_filesystem_split=0 dock_filesystem_display_mode=0 dock_filesystem_file_sort=0 dock_filesystem_file_list_display_mode=1 -dock_filesystem_selected_paths=PackedStringArray("res://scenes/ui.tscn") -dock_filesystem_uncollapsed_paths=PackedStringArray("Favorites", "res://", "res://scripts/resources/", "res://scripts/gameManager/", "res://scenes/", "res://graphics/", "res://graphics/Player Hurt/") +dock_filesystem_selected_paths=PackedStringArray("res://graphics/fonts/PixelOperator8.ttf") +dock_filesystem_uncollapsed_paths=PackedStringArray("Favorites", "res://", "res://scripts/resources/", "res://scripts/gameManager/", "res://graphics/", "res://graphics/fonts/") dock_3="Scene,Import" dock_4="FileSystem" dock_5="Inspector,Node,History" [EditorNode] -open_scenes=PackedStringArray("res://scenes/game.tscn", "res://scenes/character.tscn", "res://scenes/badguy.tscn", "res://scenes/coin.tscn", "res://scenes/ui.tscn") +open_scenes=PackedStringArray("res://scenes/game.tscn", "res://scenes/character.tscn", "res://scenes/badguy.tscn", "res://scenes/coin.tscn") current_scene="res://scenes/game.tscn" center_split_offset=-252 selected_default_debugger_tab_idx=0 diff --git a/week6/updated_project/.godot/editor/filesystem_cache8 b/week6/updated_project/.godot/editor/filesystem_cache8 index 6fc0c50..64ae9bf 100644 --- a/week6/updated_project/.godot/editor/filesystem_cache8 +++ b/week6/updated_project/.godot/editor/filesystem_cache8 @@ -1,7 +1,7 @@ ea4bc82a6ad023ab7ee23ee620429895 ::res://::1724081296 icon.svg::CompressedTexture2D::9114977118871582245::1724024726::1724024726::1::::<><>:: -::res://graphics/::1724076966 +::res://graphics/::1724092705 coin.png::CompressedTexture2D::7063880403899111552::1724024726::1724024726::1::::<><>:: slime_green.png::CompressedTexture2D::6822447834752212284::1724024726::1724024726::1::::<><>:: Terrain (32x32).png::CompressedTexture2D::8707534964839485024::1724024726::1724024726::1::::<><>:: @@ -9,6 +9,9 @@ Terrain (32x32).png::CompressedTexture2D::8707534964839485024::1724024726::17240 Additional Sky.png::CompressedTexture2D::6380466891628860263::1724024726::1724024726::1::::<><>:: Additional Water.png::CompressedTexture2D::2205427413754203696::1724024726::1724024726::1::::<><>:: BG Image.png::CompressedTexture2D::7982657594202931692::1724024726::1724024726::1::::<><>:: +::res://graphics/fonts/::1724092715 +PixelOperator8-Bold.ttf::FontFile::5301245701011028277::1724092715::1724092715::1::::<><>:: +PixelOperator8.ttf::FontFile::8552583736890290834::1724092715::1724092715::1::::<><>:: ::res://graphics/items/::1724024726 cannister.png::CompressedTexture2D::7418095402531000042::1724024726::1724024726::1::::<><>:: ::res://graphics/Player Death/::1724024726 @@ -23,26 +26,28 @@ player jump 48x48.png::CompressedTexture2D::1627608568707791839::1724024726::172 player land 48x48.png::CompressedTexture2D::3499637713582873633::1724024726::1724024726::1::::<><>:: ::res://graphics/Player Run/::1724024726 player run 48x48.png::CompressedTexture2D::1502492849971408816::1724024726::1724024726::1::::<><>:: -::res://scenes/::1724078633 +::res://scenes/::1724088311 area_trigger.tscn::PackedScene::2953141911562060689::1724024726::0::1::::<><>::res://scripts/Trigger.gd -badguy.tscn::PackedScene::8923528729538756339::1724078633::0::1::::<><>::res://scripts/badguy.gd<>uid://c4g3ypigewuuu::::res://graphics/slime_green.png +badguy.tscn::PackedScene::8923528729538756339::1724088311::0::1::::<><>::res://scripts/badguy.gd<>uid://c4g3ypigewuuu::::res://graphics/slime_green.png bullet.tscn::PackedScene::6880909734590904373::1724035820::0::1::::<><>::res://scripts/bullet.gd -character.tscn::PackedScene::451838158579532324::1724078633::0::1::::<><>::res://scripts/CharacterBody2D.gd<>uid://c0iiaebonyhh0::::res://graphics/Player Idle/Player Idle 48x48.png<>uid://bwnec1thq1btr::::res://graphics/Player Death/Player Death 64x64.png<>uid://dytvp6158kit2::::res://graphics/Player Hurt/Player Hurt 48x48.png<>uid://xgoqfqmvorcx::::res://graphics/Player Jump/player jump 48x48.png<>uid://vn23qn3f0dvc::::res://graphics/Player Run/player run 48x48.png -coin.tscn::PackedScene::61828818800194477::1724078633::0::1::::<><>::uid://c7v2cwn2826lg::::res://graphics/coin.png<>res://scripts/coin.gd +character.tscn::PackedScene::451838158579532324::1724088311::0::1::::<><>::res://scripts/CharacterBody2D.gd<>uid://c0iiaebonyhh0::::res://graphics/Player Idle/Player Idle 48x48.png<>uid://bwnec1thq1btr::::res://graphics/Player Death/Player Death 64x64.png<>uid://dytvp6158kit2::::res://graphics/Player Hurt/Player Hurt 48x48.png<>uid://xgoqfqmvorcx::::res://graphics/Player Jump/player jump 48x48.png<>uid://vn23qn3f0dvc::::res://graphics/Player Run/player run 48x48.png +coin.tscn::PackedScene::61828818800194477::1724088311::0::1::::<><>::uid://c7v2cwn2826lg::::res://graphics/coin.png<>res://scripts/coin.gd crate.tscn::PackedScene::41931541512830250::1724035820::0::1::::<><>::uid://ddxm7hj323fta::::res://graphics/items/cannister.png -game.tscn::PackedScene::1738196330916037717::1724078633::0::1::::<><>::res://scripts/gamecontroller.gd<>uid://go4yc8hfo1gq::::res://scenes/character.tscn<>uid://dwb83f7uoweuy::::res://graphics/Terrain (32x32).png<>uid://ukuu7p7vhlq::::res://scenes/crate.tscn<>uid://dvd1p6xue0ub2::::res://scenes/platform.tscn<>uid://dly4g7fvvtamm::::res://graphics/background/BG Image.png<>uid://bicr20de8c3jp::::res://scenes/area_trigger.tscn<>uid://cw50mfjp2np08::::res://graphics/background/Additional Sky.png<>uid://6olcj1w1svdg::::res://graphics/background/Additional Water.png<>uid://47kuhu1ukph::::res://scenes/coin.tscn<>uid://d0evhj5ayp0ep::::res://scenes/badguy.tscn +game.tscn::PackedScene::1738196330916037717::1724088311::0::1::::<><>::res://scripts/gamecontroller.gd<>uid://w7al4r6vnaye::::res://scenes/ui.tscn<>uid://go4yc8hfo1gq::::res://scenes/character.tscn<>uid://dwb83f7uoweuy::::res://graphics/Terrain (32x32).png<>uid://ukuu7p7vhlq::::res://scenes/crate.tscn<>uid://dvd1p6xue0ub2::::res://scenes/platform.tscn<>uid://dly4g7fvvtamm::::res://graphics/background/BG Image.png<>uid://bicr20de8c3jp::::res://scenes/area_trigger.tscn<>uid://cw50mfjp2np08::::res://graphics/background/Additional Sky.png<>uid://6olcj1w1svdg::::res://graphics/background/Additional Water.png<>uid://47kuhu1ukph::::res://scenes/coin.tscn<>uid://d0evhj5ayp0ep::::res://scenes/badguy.tscn menu.tscn::PackedScene::1738029604261438007::1724024726::0::1::::<><>:: platform.tscn::PackedScene::8641027994130079701::1724024726::0::1::::<><>:: -::res://scripts/::1724077882 +ui.tscn::PackedScene::1610235842775481356::1724088311::0::1::::<><>::res://scripts/ui.gd +::res://scripts/::1724088065 badguy.gd::GDScript::-1::1724077297::0::1::::<>Area2D<>:: bullet.gd::GDScript::-1::1724024726::0::1::::<>Area2D<>:: CharacterBody2D.gd::GDScript::-1::1724077882::0::1::::<>CharacterBody2D<>:: coin.gd::GDScript::-1::1724076175::0::1::::<>Area2D<>:: -gamecontroller.gd::GDScript::-1::1724077508::0::1::::<>Node<>:: +gamecontroller.gd::GDScript::-1::1724088065::0::1::::<>Node<>:: Trigger.gd::GDScript::-1::1724024726::0::1::::<>Area2D<>:: +ui.gd::GDScript::-1::1724087791::0::1::::<>Control<>:: ::res://scripts/gameManager/::1724073623 gamemanager.gd::GDScript::-1::1724073623::0::1::::<>Node<>:: ::res://scripts/resources/::1724073389 character_stats.gd::GDScript::-1::1724028944::0::1::::CharacterStats<>Resource<>:: -player_stats.tres::Resource/CharacterStats::3561309685261247282::1724072114::0::1::::<><>::res://scripts/resources/character_stats.gd -slime_stats.tres::Resource/CharacterStats::3009667384297077150::1724073389::0::1::::<><>::res://scripts/resources/character_stats.gd +player_stats.tres::Resource/Resource::3561309685261247282::1724072114::0::1::::<><>::res://scripts/resources/character_stats.gd +slime_stats.tres::Resource/Resource::3009667384297077150::1724073389::0::1::::<><>::res://scripts/resources/character_stats.gd diff --git a/week6/updated_project/.godot/editor/filesystem_update4 b/week6/updated_project/.godot/editor/filesystem_update4 index d4c6573..8e233a0 100644 --- a/week6/updated_project/.godot/editor/filesystem_update4 +++ b/week6/updated_project/.godot/editor/filesystem_update4 @@ -5,3 +5,5 @@ res://scenes/coin.tscn res://scenes/ui.tscn res://scripts/ui.gd res://scripts/gamecontroller.gd +res://scripts/coin.gd +res://scripts/badguy.gd diff --git a/week6/updated_project/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg b/week6/updated_project/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg index f74e3f7..35a91e0 100644 --- a/week6/updated_project/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg +++ b/week6/updated_project/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg @@ -172,4 +172,4 @@ Anim={ "zfar": 4000.01, "znear": 0.05 } -selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17140/@Panel@13/@VBoxContainer@14/@HSplitContainer@17/@HSplitContainer@25/@HSplitContainer@33/@VBoxContainer@34/@VSplitContainer@36/@VSplitContainer@62/@VBoxContainer@63/@PanelContainer@110/MainScreen/@CanvasItemEditor@9462/@VSplitContainer@9281/@HSplitContainer@9283/@HSplitContainer@9285/@Control@9286/@SubViewportContainer@9287/@SubViewport@9288/Game/CanvasLayer/UI")]) +selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17140/@Panel@13/@VBoxContainer@14/@HSplitContainer@17/@HSplitContainer@25/@HSplitContainer@33/@VBoxContainer@34/@VSplitContainer@36/@VSplitContainer@62/@VBoxContainer@63/@PanelContainer@110/MainScreen/@CanvasItemEditor@9462/@VSplitContainer@9281/@HSplitContainer@9283/@HSplitContainer@9285/@Control@9286/@SubViewportContainer@9287/@SubViewport@9288/Game/enemies")]) diff --git a/week6/updated_project/.godot/editor/game.tscn-folding-c2a7af834e91ff64325daddf58e45dc0.cfg b/week6/updated_project/.godot/editor/game.tscn-folding-c2a7af834e91ff64325daddf58e45dc0.cfg index b7473bb..5598d34 100644 --- a/week6/updated_project/.godot/editor/game.tscn-folding-c2a7af834e91ff64325daddf58e45dc0.cfg +++ b/week6/updated_project/.godot/editor/game.tscn-folding-c2a7af834e91ff64325daddf58e45dc0.cfg @@ -2,4 +2,4 @@ node_unfolds=[NodePath("."), PackedStringArray("Transform"), NodePath("TileMap"), PackedStringArray("layer__array", "tile_set"), NodePath("ParallaxBackground/ParallaxLayer"), PackedStringArray("Motion"), NodePath("ParallaxBackground/ParallaxLayer/Sprite2D"), PackedStringArray("Transform", "texture"), NodePath("Ground"), PackedStringArray("Transform"), NodePath("MovingPlatform"), PackedStringArray("Transform")] resource_unfolds=["res://scenes/game.tscn::TileSet_47g5u", PackedStringArray("terrain_set_0/terrain__array", "physics_layer__array"), "res://scenes/game.tscn::WorldBoundaryShape2D_xkyim", PackedStringArray(), "res://scenes/game.tscn::CircleShape2D_j8ltg", PackedStringArray()] -nodes_folded=[NodePath("SceneManager"), NodePath("ParallaxBackground"), NodePath("ParallaxBackground/ParallaxLayer"), NodePath("Ground"), NodePath("CharacterBody2D"), NodePath("BoxTrapTrigger"), NodePath("crates"), NodePath("MovingPlatform")] +nodes_folded=[NodePath("SceneManager"), NodePath("ParallaxBackground"), NodePath("ParallaxBackground/ParallaxLayer"), NodePath("Ground"), NodePath("CharacterBody2D"), NodePath("crates"), NodePath("coins"), NodePath("enemies"), NodePath("BoxTrapTrigger"), NodePath("MovingPlatform"), NodePath("UICanvas")] diff --git a/week6/updated_project/.godot/editor/script_editor_cache.cfg b/week6/updated_project/.godot/editor/script_editor_cache.cfg index 227da02..dbc2be4 100644 --- a/week6/updated_project/.godot/editor/script_editor_cache.cfg +++ b/week6/updated_project/.godot/editor/script_editor_cache.cfg @@ -3,11 +3,11 @@ state={ "bookmarks": PackedInt32Array(), "breakpoints": PackedInt32Array(), -"column": 0, +"column": 32, "folded_lines": Array[int]([]), "h_scroll_position": 0, -"row": 43, -"scroll_position": 30.0, +"row": 15, +"scroll_position": 3.0, "selection": false, "syntax_highlighter": "GDScript" } @@ -19,9 +19,9 @@ state={ "breakpoints": PackedInt32Array(), "column": 36, "folded_lines": Array[int]([]), -"h_scroll_position": 129, +"h_scroll_position": 0, "row": 40, -"scroll_position": 40.0, +"scroll_position": 0.0, "selection": false, "syntax_highlighter": "GDScript" } @@ -45,10 +45,10 @@ state={ state={ "bookmarks": PackedInt32Array(), "breakpoints": PackedInt32Array(), -"column": 22, +"column": 16, "folded_lines": Array[int]([]), "h_scroll_position": 0, -"row": 8, +"row": 0, "scroll_position": 0.0, "selection": false, "syntax_highlighter": "GDScript" @@ -73,11 +73,11 @@ state={ state={ "bookmarks": PackedInt32Array(), "breakpoints": PackedInt32Array(), -"column": 21, +"column": 31, "folded_lines": Array[int]([]), "h_scroll_position": 0, -"row": 35, -"scroll_position": 22.0, +"row": 0, +"scroll_position": 0.0, "selection": false, "syntax_highlighter": "GDScript" } diff --git a/week6/updated_project/.godot/editor/ui.tscn-editstate-9211dc52ac9df169ba4fe77cbc1dc833.cfg b/week6/updated_project/.godot/editor/ui.tscn-editstate-9211dc52ac9df169ba4fe77cbc1dc833.cfg index 7fbf099..0eeaf96 100644 --- a/week6/updated_project/.godot/editor/ui.tscn-editstate-9211dc52ac9df169ba4fe77cbc1dc833.cfg +++ b/week6/updated_project/.godot/editor/ui.tscn-editstate-9211dc52ac9df169ba4fe77cbc1dc833.cfg @@ -172,4 +172,4 @@ Anim={ "zfar": 4000.01, "znear": 0.05 } -selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17140/@Panel@13/@VBoxContainer@14/@HSplitContainer@17/@HSplitContainer@25/@HSplitContainer@33/@VBoxContainer@34/@VSplitContainer@36/@VSplitContainer@62/@VBoxContainer@63/@PanelContainer@110/MainScreen/@CanvasItemEditor@9462/@VSplitContainer@9281/@HSplitContainer@9283/@HSplitContainer@9285/@Control@9286/@SubViewportContainer@9287/@SubViewport@9288/Game/CanvasLayer/UI")]) +selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17140/@Panel@13/@VBoxContainer@14/@HSplitContainer@17/@HSplitContainer@25/@HSplitContainer@33/@VBoxContainer@34/@VSplitContainer@36/@VSplitContainer@62/@VBoxContainer@63/@PanelContainer@110/MainScreen/@CanvasItemEditor@9462/@VSplitContainer@9281/@HSplitContainer@9283/@HSplitContainer@9285/@Control@9286/@SubViewportContainer@9287/@SubViewport@9288/Control/VBoxContainer/HBoxContainer/MarginContainer2/Health")]) diff --git a/week6/updated_project/.godot/editor/ui.tscn-folding-9211dc52ac9df169ba4fe77cbc1dc833.cfg b/week6/updated_project/.godot/editor/ui.tscn-folding-9211dc52ac9df169ba4fe77cbc1dc833.cfg index f032965..c581154 100644 --- a/week6/updated_project/.godot/editor/ui.tscn-folding-9211dc52ac9df169ba4fe77cbc1dc833.cfg +++ b/week6/updated_project/.godot/editor/ui.tscn-folding-9211dc52ac9df169ba4fe77cbc1dc833.cfg @@ -1,5 +1,5 @@ [folding] -node_unfolds=[NodePath("."), PackedStringArray("Layout", "Layout/Transform", "Layout/Container Sizing"), NodePath("VBoxContainer"), PackedStringArray("Layout", "Layout/Transform"), NodePath("VBoxContainer/HBoxContainer"), PackedStringArray("Layout", "Layout/Container Sizing"), NodePath("VBoxContainer/HBoxContainer/MarginContainer2"), PackedStringArray("Layout", "Layout/Container Sizing"), NodePath("VBoxContainer/HBoxContainer/MarginContainer"), PackedStringArray("Layout", "Layout/Container Sizing")] +node_unfolds=[NodePath("."), PackedStringArray("Layout", "Layout/Transform", "Layout/Container Sizing"), NodePath("VBoxContainer"), PackedStringArray("Layout", "Layout/Transform"), NodePath("VBoxContainer/HBoxContainer"), PackedStringArray("Layout", "Layout/Container Sizing"), NodePath("VBoxContainer/HBoxContainer/MarginContainer2"), PackedStringArray("Layout", "Layout/Container Sizing"), NodePath("VBoxContainer/HBoxContainer/MarginContainer2/Health"), PackedStringArray("Theme Overrides", "Theme Overrides/fonts", "Theme Overrides/font_sizes"), NodePath("VBoxContainer/HBoxContainer/MarginContainer"), PackedStringArray("Layout", "Layout/Container Sizing"), NodePath("VBoxContainer/HBoxContainer/MarginContainer/Coins"), PackedStringArray("Theme Overrides", "Theme Overrides/fonts", "Theme Overrides/font_sizes")] resource_unfolds=[] nodes_folded=[] diff --git a/week6/updated_project/.godot/global_script_class_cache.cfg b/week6/updated_project/.godot/global_script_class_cache.cfg index dffb18c..30ca241 100644 --- a/week6/updated_project/.godot/global_script_class_cache.cfg +++ b/week6/updated_project/.godot/global_script_class_cache.cfg @@ -4,4 +4,16 @@ list=Array[Dictionary]([{ "icon": "", "language": &"GDScript", "path": "res://scripts/resources/character_stats.gd" +}, { +"base": &"Area2D", +"class": &"Coin", +"icon": "", +"language": &"GDScript", +"path": "res://scripts/coin.gd" +}, { +"base": &"Area2D", +"class": &"Enemy", +"icon": "", +"language": &"GDScript", +"path": "res://scripts/badguy.gd" }]) diff --git a/week6/updated_project/.godot/imported/PixelOperator8-Bold.ttf-58471ac3a012822d2b91abf3e5c02684.fontdata b/week6/updated_project/.godot/imported/PixelOperator8-Bold.ttf-58471ac3a012822d2b91abf3e5c02684.fontdata new file mode 100644 index 0000000000000000000000000000000000000000..2a5fd098be6aff33ca28742d32b751b6d5d37a56 GIT binary patch literal 8569 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 delta 10 RcmeC@TEfXFwUKc#3jh!D0=obJ diff --git a/week6/updated_project/graphics/fonts/PixelOperator8-Bold.ttf b/week6/updated_project/graphics/fonts/PixelOperator8-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..10225eb8e3fc16375d26763fd3bf303ae7fefeaf GIT binary patch literal 18624 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 s$