diff --git a/.godot/editor/badguy.gd-folding-aa3680043b1211abf6e7d6fc641abc10.cfg b/.godot/editor/badguy.gd-folding-aa3680043b1211abf6e7d6fc641abc10.cfg new file mode 100644 index 0000000..e860dd4 --- /dev/null +++ b/.godot/editor/badguy.gd-folding-aa3680043b1211abf6e7d6fc641abc10.cfg @@ -0,0 +1,3 @@ +[folding] + +sections_unfolded=PackedStringArray() diff --git a/.godot/editor/badguy.tscn-editstate-e196a632ea77e9a0d8baa608f164a4d2.cfg b/.godot/editor/badguy.tscn-editstate-e196a632ea77e9a0d8baa608f164a4d2.cfg new file mode 100644 index 0000000..3854d59 --- /dev/null +++ b/.godot/editor/badguy.tscn-editstate-e196a632ea77e9a0d8baa608f164a4d2.cfg @@ -0,0 +1,175 @@ +[editor_states] + +Anim={ +"visible": false +} +2D={ +"grid_offset": Vector2(0, 0), +"grid_snap_active": false, +"grid_step": Vector2(8, 8), +"grid_visibility": 1, +"ofs": Vector2(-24.2817, -18.5096), +"primary_grid_step": Vector2i(8, 8), +"show_edit_locks": true, +"show_guides": true, +"show_helpers": false, +"show_origin": true, +"show_rulers": true, +"show_transformation_gizmos": true, +"show_viewport": true, +"show_zoom_control": true, +"smart_snap_active": false, +"snap_guides": true, +"snap_node_anchors": true, +"snap_node_center": true, +"snap_node_parent": true, +"snap_node_sides": true, +"snap_other_nodes": true, +"snap_pixel": true, +"snap_relative": false, +"snap_rotation": false, +"snap_rotation_offset": 0.0, +"snap_rotation_step": 0.261799, +"snap_scale": false, +"snap_scale_step": 0.1, +"zoom": 7.12719 +} +3D={ +"fov": 70.01, +"gizmos_status": { +"AudioListener3D": 0, +"AudioStreamPlayer3D": 0, +"CPUParticles3D": 0, +"CSGShape3D": 0, +"Camera3D": 0, +"CollisionObject3D": 0, +"CollisionPolygon3D": 0, +"CollisionShape3D": 0, +"Decal": 0, +"FogVolume": 0, +"GPUParticles3D": 0, +"GPUParticlesCollision3D": 0, +"Joint3D": 0, +"Light3D": 0, +"LightmapGI": 0, +"LightmapProbe": 0, +"Marker3D": 0, +"NavigationLink3D": 0, +"NavigationRegion3D": 0, +"OccluderInstance3D": 0, +"Path3D": 0, +"PhysicalBone3D": 0, +"RayCast3D": 0, +"ReflectionProbe": 0, +"ShapeCast3D": 0, +"Skeleton3D": 0, +"SoftBody3D": 0, +"SpringArm3D": 0, +"VehicleWheel3D": 0, +"VisibleOnScreenNotifier3D": 0, +"VoxelGI": 0 +}, +"local_coords": false, +"preview_sun_env": { +"environ_ao_enabled": false, +"environ_enabled": true, +"environ_energy": 1.0, +"environ_gi_enabled": false, +"environ_glow_enabled": true, +"environ_ground_color": Color(0.2, 0.169, 0.133, 1), +"environ_sky_color": Color(0.385, 0.454, 0.55, 1), +"environ_tonemap_enabled": true, +"sun_color": Color(1, 1, 1, 1), +"sun_enabled": true, +"sun_energy": 1.0, +"sun_max_distance": 100.0, +"sun_rotation": Vector2(-1.0472, 2.61799) +}, +"rotate_snap": 15.0, +"scale_snap": 10.0, +"show_grid": true, +"show_origin": true, +"snap_enabled": false, +"translate_snap": 1.0, +"viewport_mode": 1, +"viewports": [{ +"auto_orthogonal": false, +"auto_orthogonal_enabled": true, +"cinematic_preview": false, +"display_mode": 20, +"distance": 4.0, +"doppler": false, +"frame_time": false, +"gizmos": true, +"half_res": false, +"information": false, +"listener": true, +"lock_rotation": false, +"orthogonal": false, +"position": Vector3(0, 0, 0), +"use_environment": false, +"view_type": 0, +"x_rotation": 0.5, +"y_rotation": -0.5 +}, { +"auto_orthogonal": false, +"auto_orthogonal_enabled": true, +"cinematic_preview": false, +"display_mode": 20, +"distance": 4.0, +"doppler": false, +"frame_time": false, +"gizmos": true, +"half_res": false, +"information": false, +"listener": false, +"lock_rotation": false, +"orthogonal": false, +"position": Vector3(0, 0, 0), +"use_environment": false, +"view_type": 0, +"x_rotation": 0.5, +"y_rotation": -0.5 +}, { +"auto_orthogonal": false, +"auto_orthogonal_enabled": true, +"cinematic_preview": false, +"display_mode": 20, +"distance": 4.0, +"doppler": false, +"frame_time": false, +"gizmos": true, +"half_res": false, +"information": false, +"listener": false, +"lock_rotation": false, +"orthogonal": false, +"position": Vector3(0, 0, 0), +"use_environment": false, +"view_type": 0, +"x_rotation": 0.5, +"y_rotation": -0.5 +}, { +"auto_orthogonal": false, +"auto_orthogonal_enabled": true, +"cinematic_preview": false, +"display_mode": 20, +"distance": 4.0, +"doppler": false, +"frame_time": false, +"gizmos": true, +"half_res": false, +"information": false, +"listener": false, +"lock_rotation": false, +"orthogonal": false, +"position": Vector3(0, 0, 0), +"use_environment": false, +"view_type": 0, +"x_rotation": 0.5, +"y_rotation": -0.5 +}], +"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/CharacterBody2D")]) diff --git a/.godot/editor/badguy.tscn-folding-e196a632ea77e9a0d8baa608f164a4d2.cfg b/.godot/editor/badguy.tscn-folding-e196a632ea77e9a0d8baa608f164a4d2.cfg new file mode 100644 index 0000000..2c4718d --- /dev/null +++ b/.godot/editor/badguy.tscn-folding-e196a632ea77e9a0d8baa608f164a4d2.cfg @@ -0,0 +1,5 @@ +[folding] + +node_unfolds=[NodePath("AnimatedSprite2D"), PackedStringArray("Animation", "sprite_frames", "Texture")] +resource_unfolds=["res://scenes/badguy.tscn::SpriteFrames_yk6ef", PackedStringArray(), "res://scenes/badguy.tscn::RectangleShape2D_1c86m", PackedStringArray()] +nodes_folded=[] diff --git a/.godot/editor/coin.gd-folding-80a47dad698f065f8d4e0255ce133510.cfg b/.godot/editor/coin.gd-folding-80a47dad698f065f8d4e0255ce133510.cfg new file mode 100644 index 0000000..e860dd4 --- /dev/null +++ b/.godot/editor/coin.gd-folding-80a47dad698f065f8d4e0255ce133510.cfg @@ -0,0 +1,3 @@ +[folding] + +sections_unfolded=PackedStringArray() diff --git a/.godot/editor/coin.tscn-editstate-96b2131180b71dd158e52c5527d22dd4.cfg b/.godot/editor/coin.tscn-editstate-96b2131180b71dd158e52c5527d22dd4.cfg new file mode 100644 index 0000000..3053234 --- /dev/null +++ b/.godot/editor/coin.tscn-editstate-96b2131180b71dd158e52c5527d22dd4.cfg @@ -0,0 +1,175 @@ +[editor_states] + +Anim={ +"visible": false +} +2D={ +"grid_offset": Vector2(0, 0), +"grid_snap_active": false, +"grid_step": Vector2(8, 8), +"grid_visibility": 1, +"ofs": Vector2(-24.5403, -16.8633), +"primary_grid_step": Vector2i(8, 8), +"show_edit_locks": true, +"show_guides": true, +"show_helpers": false, +"show_origin": true, +"show_rulers": true, +"show_transformation_gizmos": true, +"show_viewport": true, +"show_zoom_control": true, +"smart_snap_active": false, +"snap_guides": true, +"snap_node_anchors": true, +"snap_node_center": true, +"snap_node_parent": true, +"snap_node_sides": true, +"snap_other_nodes": true, +"snap_pixel": true, +"snap_relative": false, +"snap_rotation": false, +"snap_rotation_offset": 0.0, +"snap_rotation_step": 0.261799, +"snap_scale": false, +"snap_scale_step": 0.1, +"zoom": 7.55099 +} +3D={ +"fov": 70.01, +"gizmos_status": { +"AudioListener3D": 0, +"AudioStreamPlayer3D": 0, +"CPUParticles3D": 0, +"CSGShape3D": 0, +"Camera3D": 0, +"CollisionObject3D": 0, +"CollisionPolygon3D": 0, +"CollisionShape3D": 0, +"Decal": 0, +"FogVolume": 0, +"GPUParticles3D": 0, +"GPUParticlesCollision3D": 0, +"Joint3D": 0, +"Light3D": 0, +"LightmapGI": 0, +"LightmapProbe": 0, +"Marker3D": 0, +"NavigationLink3D": 0, +"NavigationRegion3D": 0, +"OccluderInstance3D": 0, +"Path3D": 0, +"PhysicalBone3D": 0, +"RayCast3D": 0, +"ReflectionProbe": 0, +"ShapeCast3D": 0, +"Skeleton3D": 0, +"SoftBody3D": 0, +"SpringArm3D": 0, +"VehicleWheel3D": 0, +"VisibleOnScreenNotifier3D": 0, +"VoxelGI": 0 +}, +"local_coords": false, +"preview_sun_env": { +"environ_ao_enabled": false, +"environ_enabled": true, +"environ_energy": 1.0, +"environ_gi_enabled": false, +"environ_glow_enabled": true, +"environ_ground_color": Color(0.2, 0.169, 0.133, 1), +"environ_sky_color": Color(0.385, 0.454, 0.55, 1), +"environ_tonemap_enabled": true, +"sun_color": Color(1, 1, 1, 1), +"sun_enabled": true, +"sun_energy": 1.0, +"sun_max_distance": 100.0, +"sun_rotation": Vector2(-1.0472, 2.61799) +}, +"rotate_snap": 15.0, +"scale_snap": 10.0, +"show_grid": true, +"show_origin": true, +"snap_enabled": false, +"translate_snap": 1.0, +"viewport_mode": 1, +"viewports": [{ +"auto_orthogonal": false, +"auto_orthogonal_enabled": true, +"cinematic_preview": false, +"display_mode": 20, +"distance": 4.0, +"doppler": false, +"frame_time": false, +"gizmos": true, +"half_res": false, +"information": false, +"listener": true, +"lock_rotation": false, +"orthogonal": false, +"position": Vector3(0, 0, 0), +"use_environment": false, +"view_type": 0, +"x_rotation": 0.5, +"y_rotation": -0.5 +}, { +"auto_orthogonal": false, +"auto_orthogonal_enabled": true, +"cinematic_preview": false, +"display_mode": 20, +"distance": 4.0, +"doppler": false, +"frame_time": false, +"gizmos": true, +"half_res": false, +"information": false, +"listener": false, +"lock_rotation": false, +"orthogonal": false, +"position": Vector3(0, 0, 0), +"use_environment": false, +"view_type": 0, +"x_rotation": 0.5, +"y_rotation": -0.5 +}, { +"auto_orthogonal": false, +"auto_orthogonal_enabled": true, +"cinematic_preview": false, +"display_mode": 20, +"distance": 4.0, +"doppler": false, +"frame_time": false, +"gizmos": true, +"half_res": false, +"information": false, +"listener": false, +"lock_rotation": false, +"orthogonal": false, +"position": Vector3(0, 0, 0), +"use_environment": false, +"view_type": 0, +"x_rotation": 0.5, +"y_rotation": -0.5 +}, { +"auto_orthogonal": false, +"auto_orthogonal_enabled": true, +"cinematic_preview": false, +"display_mode": 20, +"distance": 4.0, +"doppler": false, +"frame_time": false, +"gizmos": true, +"half_res": false, +"information": false, +"listener": false, +"lock_rotation": false, +"orthogonal": false, +"position": Vector3(0, 0, 0), +"use_environment": false, +"view_type": 0, +"x_rotation": 0.5, +"y_rotation": -0.5 +}], +"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/CharacterBody2D")]) diff --git a/.godot/editor/coin.tscn-folding-96b2131180b71dd158e52c5527d22dd4.cfg b/.godot/editor/coin.tscn-folding-96b2131180b71dd158e52c5527d22dd4.cfg new file mode 100644 index 0000000..9e8950b --- /dev/null +++ b/.godot/editor/coin.tscn-folding-96b2131180b71dd158e52c5527d22dd4.cfg @@ -0,0 +1,5 @@ +[folding] + +node_unfolds=[NodePath("AnimatedSprite2D"), PackedStringArray("Animation", "sprite_frames", "Texture")] +resource_unfolds=["res://scenes/coin.tscn::SpriteFrames_h30lo", PackedStringArray(), "res://scenes/coin.tscn::CircleShape2D_huvfs", PackedStringArray()] +nodes_folded=[] diff --git a/.godot/editor/create_recent.Node b/.godot/editor/create_recent.Node index a4c571f..395c938 100644 --- a/.godot/editor/create_recent.Node +++ b/.godot/editor/create_recent.Node @@ -1,11 +1,14 @@ -Node2D -AnimationPlayer +Timer +RayCast2D CollisionShape2D -AnimatableBody2D -Sprite2D -Camera2D -TileMap -Node AnimatedSprite2D Area2D -RayCast2D +Node +Sprite2D +ParallaxLayer +ParallaxBackground +Node2D +AnimationPlayer +AnimatableBody2D +Camera2D +TileMap diff --git a/.godot/editor/editor_layout.cfg b/.godot/editor/editor_layout.cfg index 61d925e..ab58dfc 100644 --- a/.godot/editor/editor_layout.cfg +++ b/.godot/editor/editor_layout.cfg @@ -12,31 +12,31 @@ dock_floating={} dock_split_2=0 dock_split_3=0 dock_hsplit_1=0 -dock_hsplit_2=270 +dock_hsplit_2=318 dock_hsplit_3=-270 dock_hsplit_4=0 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/platform.tscn") -dock_filesystem_uncollapsed_paths=PackedStringArray("Favorites", "res://", "res://scripts/", "res://scenes/", "res://graphics/", "res://graphics/items/") +dock_filesystem_selected_paths=PackedStringArray("res://graphics/Player Death/") +dock_filesystem_uncollapsed_paths=PackedStringArray("Favorites", "res://", "res://scripts/", "res://scenes/", "res://graphics/", "res://graphics/Player Death/") 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/bullet.tscn", "res://scenes/crate.tscn", "res://scenes/platform.tscn") +open_scenes=PackedStringArray("res://scenes/game.tscn", "res://scenes/character.tscn", "res://scenes/bullet.tscn", "res://scenes/crate.tscn", "res://scenes/platform.tscn", "res://scenes/coin.tscn", "res://scenes/badguy.tscn") current_scene="res://scenes/game.tscn" -center_split_offset=-329 +center_split_offset=-247 selected_default_debugger_tab_idx=0 selected_main_editor_idx=2 selected_bottom_panel_item=0 [ScriptEditor] -open_scripts=["res://scripts/bullet.gd", "res://scripts/CharacterBody2D.gd", "res://scripts/gamecontroller.gd", "res://scripts/Trigger.gd"] +open_scripts=["res://scripts/badguy.gd", "res://scripts/bullet.gd", "res://scripts/CharacterBody2D.gd", "res://scripts/coin.gd", "res://scripts/gamecontroller.gd", "res://scripts/Trigger.gd"] selected_script="res://scripts/gamecontroller.gd" open_help=[] script_split_offset=70 diff --git a/.godot/editor/filesystem_cache8 b/.godot/editor/filesystem_cache8 index 3b28b40..9ef0b16 100644 --- a/.godot/editor/filesystem_cache8 +++ b/.godot/editor/filesystem_cache8 @@ -1,26 +1,41 @@ ea4bc82a6ad023ab7ee23ee620429895 -::res://::1722297822 -icon.svg::CompressedTexture2D::9114977118871582245::1722289482::1722289482::1::::<><>:: -::res://graphics/::1722297822 -bullet.png::CompressedTexture2D::4834894094516681527::1722297811::1722297822::1::::<><>:: -Terrain (32x32).png::CompressedTexture2D::8707534964839485024::1722289482::1722289482::1::::<><>:: -::res://graphics/items/::1722289482 -cannister.png::CompressedTexture2D::7418095402531000042::1722289482::1722289482::1::::<><>:: -::res://graphics/Player Idle/::1722289482 -Player Idle 48x48.png::CompressedTexture2D::6544563428604246579::1722289482::1722289482::1::::<><>:: -::res://graphics/Player Jump/::1722289482 -player jump 48x48.png::CompressedTexture2D::1627608568707791839::1722289482::1722289482::1::::<><>:: -::res://graphics/Player Land/::1722289482 -player land 48x48.png::CompressedTexture2D::3499637713582873633::1722289482::1722289482::1::::<><>:: -::res://graphics/Player Run/::1722289482 -player run 48x48.png::CompressedTexture2D::1502492849971408816::1722289482::1722289482::1::::<><>:: -::res://scenes/::1722297822 -bullet.tscn::PackedScene::6880909734590904373::1722297251::0::1::::<><>::res://scripts/bullet.gd -character.tscn::PackedScene::451838158579532324::1722297251::0::1::::<><>::res://scripts/CharacterBody2D.gd<>uid://c0iiaebonyhh0::::res://graphics/Player Idle/Player Idle 48x48.png<>uid://xgoqfqmvorcx::::res://graphics/Player Jump/player jump 48x48.png<>uid://vn23qn3f0dvc::::res://graphics/Player Run/player run 48x48.png -crate.tscn::PackedScene::41931541512830250::1722297251::0::1::::<><>::uid://ddxm7hj323fta::::res://graphics/items/cannister.png -game.tscn::PackedScene::1738196330916037717::1722297251::0::1::::<><>::res://scripts/gamecontroller.gd<>uid://go4yc8hfo1gq::::res://scenes/character.tscn<>uid://dwb83f7uoweuy::::res://graphics/Terrain (32x32).png<>res://scripts/Trigger.gd<>uid://ukuu7p7vhlq::::res://scenes/crate.tscn -::res://scripts/::1722293648 -bullet.gd::GDScript::-1::1722289482::0::1::::<>Area2D<>:: -CharacterBody2D.gd::GDScript::-1::1722293648::0::1::::<>CharacterBody2D<>:: -gamecontroller.gd::GDScript::-1::1722289482::0::1::::<>Node2D<>:: -Trigger.gd::GDScript::-1::1722289482::0::1::::<>Area2D<>:: +::res://::1723499748 +icon.svg::CompressedTexture2D::9114977118871582245::1723499516::1723499516::1::::<><>:: +::res://graphics/::1723509991 +bullet.png::CompressedTexture2D::4834894094516681527::1723499516::1723499516::1::::<><>:: +Terrain (32x32).png::CompressedTexture2D::8707534964839485024::1723499516::1723499516::1::::<><>:: +::res://graphics/background/::1723501213 +Additional Sky.png::CompressedTexture2D::6453351609810348480::1723501213::1723501213::1::::<><>:: +Additional Water.png::CompressedTexture2D::4106022825291545778::1723501213::1723501213::1::::<><>:: +BG Image.png::CompressedTexture2D::237374342318087251::1723501213::1723501213::1::::<><>:: +::res://graphics/enemies/::1723506305 +slime_purple.png::CompressedTexture2D::4414376887898401849::1723506305::1723506305::1::::<><>:: +::res://graphics/items/::1723499516 +cannister.png::CompressedTexture2D::7418095402531000042::1723499516::1723499516::1::::<><>:: +::res://graphics/pickups/::1723502323 +coin.png::CompressedTexture2D::9033362620640926021::1723502323::1723502323::1::::<><>:: +::res://graphics/Player Death/::1723509999 +Player Death 64x64.png::CompressedTexture2D::116608705279953946::1723509999::1723509999::1::::<><>:: +::res://graphics/Player Idle/::1723499516 +Player Idle 48x48.png::CompressedTexture2D::6544563428604246579::1723499516::1723499516::1::::<><>:: +::res://graphics/Player Jump/::1723499516 +player jump 48x48.png::CompressedTexture2D::1627608568707791839::1723499516::1723499516::1::::<><>:: +::res://graphics/Player Land/::1723499516 +player land 48x48.png::CompressedTexture2D::3499637713582873633::1723499516::1723499516::1::::<><>:: +::res://graphics/Player Run/::1723499516 +player run 48x48.png::CompressedTexture2D::1502492849971408816::1723499516::1723499516::1::::<><>:: +::res://scenes/::1723509898 +badguy.tscn::PackedScene::488149358851198558::1723509898::0::1::::<><>::uid://b35me3ux1dl8t::::res://graphics/enemies/slime_purple.png<>res://scripts/badguy.gd +bullet.tscn::PackedScene::6880909734590904373::1723509898::0::1::::<><>::res://scripts/bullet.gd<>uid://ca5b88ipe5ks2::::res://graphics/bullet.png +character.tscn::PackedScene::451838158579532324::1723509898::0::1::::<><>::res://scripts/CharacterBody2D.gd<>uid://c0iiaebonyhh0::::res://graphics/Player Idle/Player Idle 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::6452089725107733211::1723509898::0::1::::<><>::res://scripts/coin.gd<>uid://d1x3fr6xxt4mr::::res://graphics/pickups/coin.png +crate.tscn::PackedScene::41931541512830250::1723509898::0::1::::<><>::uid://ddxm7hj323fta::::res://graphics/items/cannister.png +game.tscn::PackedScene::1738196330916037717::1723509898::0::1::::<><>::res://scripts/gamecontroller.gd<>uid://go4yc8hfo1gq::::res://scenes/character.tscn<>uid://dwb83f7uoweuy::::res://graphics/Terrain (32x32).png<>res://scripts/Trigger.gd<>uid://dm8rx8b2mh3p::::res://graphics/background/BG Image.png<>uid://cx7b01o887hk7::::res://graphics/background/Additional Sky.png<>uid://byq8ujatf55a1::::res://graphics/background/Additional Water.png<>uid://ukuu7p7vhlq::::res://scenes/crate.tscn<>uid://ci10o5e0xpxm8::::res://scenes/platform.tscn<>uid://cx6o8fh0fj8kl::::res://scenes/coin.tscn<>uid://g7p0pn145hpe::::res://scenes/badguy.tscn +platform.tscn::PackedScene::5389570447076805405::1723509898::0::1::::<><>:: +::res://scripts/::1723509883 +badguy.gd::GDScript::-1::1723509883::0::1::::<>Area2D<>:: +bullet.gd::GDScript::-1::1723499516::0::1::::<>Area2D<>:: +CharacterBody2D.gd::GDScript::-1::1723499516::0::1::::<>CharacterBody2D<>:: +coin.gd::GDScript::-1::1723504932::0::1::::<>Area2D<>:: +gamecontroller.gd::GDScript::-1::1723509526::0::1::::<>Node<>:: +Trigger.gd::GDScript::-1::1723499516::0::1::::<>Area2D<>:: diff --git a/.godot/editor/filesystem_update4 b/.godot/editor/filesystem_update4 index f13a72f..a7389ed 100644 --- a/.godot/editor/filesystem_update4 +++ b/.godot/editor/filesystem_update4 @@ -2,6 +2,10 @@ res://scenes/game.tscn res://scenes/character.tscn res://scenes/bullet.tscn res://scenes/crate.tscn -res://scripts/CharacterBody2D.gd res://scenes/platform.tscn +res://scenes/coin.tscn +res://scripts/coin.gd res://scripts/gamecontroller.gd +res://scenes/badguy.tscn +res://scripts/badguy.gd +res://scripts/CharacterBody2D.gd diff --git a/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg b/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg index 88668ae..9295764 100644 --- a/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg +++ b/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg @@ -8,7 +8,7 @@ Anim={ "grid_snap_active": false, "grid_step": Vector2(8, 8), "grid_visibility": 1, -"ofs": Vector2(-271.671, -139.035), +"ofs": Vector2(-206.898, -321.44), "primary_grid_step": Vector2i(8, 8), "show_edit_locks": true, "show_guides": true, @@ -32,7 +32,7 @@ Anim={ "snap_rotation_step": 0.261799, "snap_scale": false, "snap_scale_step": 0.1, -"zoom": 1.41421 +"zoom": 1.18921 } 3D={ "fov": 70.01, diff --git a/.godot/editor/game.tscn-folding-c2a7af834e91ff64325daddf58e45dc0.cfg b/.godot/editor/game.tscn-folding-c2a7af834e91ff64325daddf58e45dc0.cfg index 9fcb061..0f1d7a3 100644 --- a/.godot/editor/game.tscn-folding-c2a7af834e91ff64325daddf58e45dc0.cfg +++ b/.godot/editor/game.tscn-folding-c2a7af834e91ff64325daddf58e45dc0.cfg @@ -1,5 +1,5 @@ [folding] -node_unfolds=[NodePath("."), PackedStringArray("Transform"), NodePath("TileMap"), PackedStringArray("tile_set"), NodePath("level"), PackedStringArray("Transform"), NodePath("level/StaticBody2D"), PackedStringArray("Transform"), NodePath("AreaTrigger"), PackedStringArray("Transform"), NodePath("Platform"), PackedStringArray("Transform")] +node_unfolds=[NodePath("."), PackedStringArray("Transform"), NodePath("TileMap"), PackedStringArray("tile_set"), NodePath("ParallaxBackground/ParallaxLayer"), PackedStringArray("Motion"), NodePath("ParallaxBackground/ParallaxLayer/bg"), PackedStringArray("Transform"), NodePath("ParallaxBackground/ParallaxLayer/sky"), PackedStringArray("Transform"), NodePath("ParallaxBackground/ParallaxLayer/water"), PackedStringArray("Transform"), NodePath("level"), PackedStringArray("Transform"), NodePath("level/StaticBody2D"), PackedStringArray("Transform"), NodePath("AreaTrigger"), PackedStringArray("Transform"), NodePath("Platform"), PackedStringArray("Transform")] resource_unfolds=["res://scenes/game.tscn::TileSet_47g5u", PackedStringArray("terrain_set_0/terrain__array", "physics_layer__array"), "res://scenes/game.tscn::WorldBoundaryShape2D_3u4a8", PackedStringArray("Resource"), "res://scenes/game.tscn::CircleShape2D_x8qck", PackedStringArray("Resource")] -nodes_folded=[NodePath("AreaTrigger")] +nodes_folded=[] diff --git a/.godot/editor/project_metadata.cfg b/.godot/editor/project_metadata.cfg index c3a9afd..0b9e863 100644 --- a/.godot/editor/project_metadata.cfg +++ b/.godot/editor/project_metadata.cfg @@ -14,8 +14,8 @@ run_debug_collisions=true [recent_files] -scenes=["res://scenes/platform.tscn", "res://scenes/crate.tscn", "res://scenes/bullet.tscn", "res://scenes/character.tscn", "res://scenes/game.tscn"] -scripts=["res://scripts/Trigger.gd", "res://scripts/bullet.gd", "res://scripts/CharacterBody2D.gd", "res://scripts/gamecontroller.gd"] +scenes=["res://scenes/badguy.tscn", "res://scenes/coin.tscn", "res://scenes/platform.tscn", "res://scenes/crate.tscn", "res://scenes/bullet.tscn", "res://scenes/character.tscn", "res://scenes/game.tscn"] +scripts=["res://scripts/badguy.gd", "res://scripts/coin.gd", "res://scripts/Trigger.gd", "res://scripts/bullet.gd", "res://scripts/CharacterBody2D.gd", "res://scripts/gamecontroller.gd"] [linked_properties] @@ -31,8 +31,12 @@ MultiNodeEdit:scale=true TileMap:scale=true Camera2D:zoom=true Camera2D:scale=true -Sprite2D:scale=true +Sprite2D:scale=false AnimatableBody2D:scale=true +ParallaxBackground:scroll_base_scale=true +ParallaxBackground:scale=true +ParallaxLayer:motion_scale=true +ParallaxLayer:scale=true [dialog_bounds] diff --git a/.godot/editor/recent_dirs b/.godot/editor/recent_dirs index 16105d0..07dc086 100644 --- a/.godot/editor/recent_dirs +++ b/.godot/editor/recent_dirs @@ -1,5 +1,8 @@ +res://graphics/Player Death +res://scripts +res://graphics/enemies res://scenes +res://graphics/pickups res://graphics/Player Jump res://graphics/Player Run res://graphics/Player Idle -res://scripts diff --git a/.godot/editor/script_editor_cache.cfg b/.godot/editor/script_editor_cache.cfg index b7285ec..6fa199e 100644 --- a/.godot/editor/script_editor_cache.cfg +++ b/.godot/editor/script_editor_cache.cfg @@ -3,11 +3,11 @@ state={ "bookmarks": PackedInt32Array(), "breakpoints": PackedInt32Array(), -"column": 37, +"column": 14, "folded_lines": Array[int]([]), "h_scroll_position": 0, -"row": 25, -"scroll_position": 12.0, +"row": 40, +"scroll_position": 28.0, "selection": false, "syntax_highlighter": "GDScript" } @@ -17,12 +17,16 @@ state={ state={ "bookmarks": PackedInt32Array(), "breakpoints": PackedInt32Array(), -"column": 26, +"column": 0, "folded_lines": Array[int]([]), "h_scroll_position": 0, -"row": 54, -"scroll_position": 41.0, -"selection": false, +"row": 26, +"scroll_position": 20.0, +"selection": true, +"selection_from_column": 0, +"selection_from_line": 26, +"selection_to_column": 15, +"selection_to_line": 29, "syntax_highlighter": "GDScript" } @@ -45,11 +49,39 @@ state={ state={ "bookmarks": PackedInt32Array(), "breakpoints": PackedInt32Array(), -"column": 28, +"column": 25, "folded_lines": Array[int]([]), "h_scroll_position": 0, -"row": 5, +"row": 6, "scroll_position": 0.0, "selection": false, "syntax_highlighter": "GDScript" } + +[res://scripts/coin.gd] + +state={ +"bookmarks": PackedInt32Array(), +"breakpoints": PackedInt32Array(), +"column": 14, +"folded_lines": Array[int]([]), +"h_scroll_position": 0, +"row": 18, +"scroll_position": 1.0, +"selection": false, +"syntax_highlighter": "GDScript" +} + +[res://scripts/badguy.gd] + +state={ +"bookmarks": PackedInt32Array(), +"breakpoints": PackedInt32Array(), +"column": 31, +"folded_lines": Array[int]([]), +"h_scroll_position": 0, +"row": 38, +"scroll_position": 24.0, +"selection": false, +"syntax_highlighter": "GDScript" +} diff --git a/.godot/imported/Additional Sky.png-0c545090cde9f2fc7e943a672b099c59.ctex b/.godot/imported/Additional Sky.png-0c545090cde9f2fc7e943a672b099c59.ctex new file mode 100644 index 0000000..28f01e6 Binary files /dev/null and b/.godot/imported/Additional Sky.png-0c545090cde9f2fc7e943a672b099c59.ctex differ diff --git a/.godot/imported/Additional Sky.png-0c545090cde9f2fc7e943a672b099c59.md5 b/.godot/imported/Additional Sky.png-0c545090cde9f2fc7e943a672b099c59.md5 new file mode 100644 index 0000000..813be63 --- /dev/null +++ b/.godot/imported/Additional Sky.png-0c545090cde9f2fc7e943a672b099c59.md5 @@ -0,0 +1,3 @@ +source_md5="ef05607ab18b6e14047ef305d4967bca" +dest_md5="c4a79c607243be25d3669dc2144fdbe8" + diff --git a/.godot/imported/Additional Water.png-bf782f3705a1acaec1e3ab97da39a373.ctex b/.godot/imported/Additional Water.png-bf782f3705a1acaec1e3ab97da39a373.ctex new file mode 100644 index 0000000..bed577d Binary files /dev/null and b/.godot/imported/Additional Water.png-bf782f3705a1acaec1e3ab97da39a373.ctex differ diff --git a/.godot/imported/Additional Water.png-bf782f3705a1acaec1e3ab97da39a373.md5 b/.godot/imported/Additional Water.png-bf782f3705a1acaec1e3ab97da39a373.md5 new file mode 100644 index 0000000..3ab7479 --- /dev/null +++ b/.godot/imported/Additional Water.png-bf782f3705a1acaec1e3ab97da39a373.md5 @@ -0,0 +1,3 @@ +source_md5="707fe1be51389c0a7dc6bce6b8df1ad8" +dest_md5="a1f827ff5491bfc85a30898cd8164541" + diff --git a/.godot/imported/BG Image.png-a4c16c98f815c26fe14456abfb54be92.ctex b/.godot/imported/BG Image.png-a4c16c98f815c26fe14456abfb54be92.ctex new file mode 100644 index 0000000..224819e Binary files /dev/null and b/.godot/imported/BG Image.png-a4c16c98f815c26fe14456abfb54be92.ctex differ diff --git a/.godot/imported/BG Image.png-a4c16c98f815c26fe14456abfb54be92.md5 b/.godot/imported/BG Image.png-a4c16c98f815c26fe14456abfb54be92.md5 new file mode 100644 index 0000000..0a89380 --- /dev/null +++ b/.godot/imported/BG Image.png-a4c16c98f815c26fe14456abfb54be92.md5 @@ -0,0 +1,3 @@ +source_md5="7f10db4045810c42977343e59a782178" +dest_md5="c50c902db0eea75f65be64479d81b3ae" + diff --git a/.godot/imported/Player Death 64x64.png-264389d563a3f9dc55af6fd3aea47ce0.ctex b/.godot/imported/Player Death 64x64.png-264389d563a3f9dc55af6fd3aea47ce0.ctex new file mode 100644 index 0000000..80fda5e Binary files /dev/null and b/.godot/imported/Player Death 64x64.png-264389d563a3f9dc55af6fd3aea47ce0.ctex differ diff --git a/.godot/imported/Player Death 64x64.png-264389d563a3f9dc55af6fd3aea47ce0.md5 b/.godot/imported/Player Death 64x64.png-264389d563a3f9dc55af6fd3aea47ce0.md5 new file mode 100644 index 0000000..ec35684 --- /dev/null +++ b/.godot/imported/Player Death 64x64.png-264389d563a3f9dc55af6fd3aea47ce0.md5 @@ -0,0 +1,3 @@ +source_md5="e5256a9ceb0ab699f4b89ff036b2a902" +dest_md5="9cd9459a73f825afbfd37992d6a40bfb" + diff --git a/.godot/imported/coin.png-b04a16f8896ddd41f884de642ba05be4.ctex b/.godot/imported/coin.png-b04a16f8896ddd41f884de642ba05be4.ctex new file mode 100644 index 0000000..f11888e Binary files /dev/null and b/.godot/imported/coin.png-b04a16f8896ddd41f884de642ba05be4.ctex differ diff --git a/.godot/imported/coin.png-b04a16f8896ddd41f884de642ba05be4.md5 b/.godot/imported/coin.png-b04a16f8896ddd41f884de642ba05be4.md5 new file mode 100644 index 0000000..a9421a9 --- /dev/null +++ b/.godot/imported/coin.png-b04a16f8896ddd41f884de642ba05be4.md5 @@ -0,0 +1,3 @@ +source_md5="9972ae36d7f15087663eef880c2522c7" +dest_md5="6323bfa165d4025b36e466114be0533d" + diff --git a/.godot/imported/slime_purple.png-680c7cb80731795ced97a298ff076baf.ctex b/.godot/imported/slime_purple.png-680c7cb80731795ced97a298ff076baf.ctex new file mode 100644 index 0000000..e3520a0 Binary files /dev/null and b/.godot/imported/slime_purple.png-680c7cb80731795ced97a298ff076baf.ctex differ diff --git a/.godot/imported/slime_purple.png-680c7cb80731795ced97a298ff076baf.md5 b/.godot/imported/slime_purple.png-680c7cb80731795ced97a298ff076baf.md5 new file mode 100644 index 0000000..f186d88 --- /dev/null +++ b/.godot/imported/slime_purple.png-680c7cb80731795ced97a298ff076baf.md5 @@ -0,0 +1,3 @@ +source_md5="54f57af24a12b9a7016da6f96c55a77d" +dest_md5="d56883b02fd383d0809e6e9ecbe5df3b" + diff --git a/.godot/uid_cache.bin b/.godot/uid_cache.bin index 26664fc..b17fb40 100644 Binary files a/.godot/uid_cache.bin and b/.godot/uid_cache.bin differ diff --git a/graphics/Player Death/Player Death 64x64.png b/graphics/Player Death/Player Death 64x64.png new file mode 100644 index 0000000..2e6a1ae Binary files /dev/null and b/graphics/Player Death/Player Death 64x64.png differ diff --git a/graphics/Player Death/Player Death 64x64.png.import b/graphics/Player Death/Player Death 64x64.png.import new file mode 100644 index 0000000..f477b50 --- /dev/null +++ b/graphics/Player Death/Player Death 64x64.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bwqr703yjxqw" +path="res://.godot/imported/Player Death 64x64.png-264389d563a3f9dc55af6fd3aea47ce0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/Player Death/Player Death 64x64.png" +dest_files=["res://.godot/imported/Player Death 64x64.png-264389d563a3f9dc55af6fd3aea47ce0.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/graphics/background/Additional Sky.png b/graphics/background/Additional Sky.png new file mode 100644 index 0000000..46e400f Binary files /dev/null and b/graphics/background/Additional Sky.png differ diff --git a/graphics/background/Additional Sky.png.import b/graphics/background/Additional Sky.png.import new file mode 100644 index 0000000..02538b2 --- /dev/null +++ b/graphics/background/Additional Sky.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cx7b01o887hk7" +path="res://.godot/imported/Additional Sky.png-0c545090cde9f2fc7e943a672b099c59.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/background/Additional Sky.png" +dest_files=["res://.godot/imported/Additional Sky.png-0c545090cde9f2fc7e943a672b099c59.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/graphics/background/Additional Water.png b/graphics/background/Additional Water.png new file mode 100644 index 0000000..591e481 Binary files /dev/null and b/graphics/background/Additional Water.png differ diff --git a/graphics/background/Additional Water.png.import b/graphics/background/Additional Water.png.import new file mode 100644 index 0000000..8e4b7f8 --- /dev/null +++ b/graphics/background/Additional Water.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://byq8ujatf55a1" +path="res://.godot/imported/Additional Water.png-bf782f3705a1acaec1e3ab97da39a373.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/background/Additional Water.png" +dest_files=["res://.godot/imported/Additional Water.png-bf782f3705a1acaec1e3ab97da39a373.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/graphics/background/BG Image.png b/graphics/background/BG Image.png new file mode 100644 index 0000000..3f2a66c Binary files /dev/null and b/graphics/background/BG Image.png differ diff --git a/graphics/background/BG Image.png.import b/graphics/background/BG Image.png.import new file mode 100644 index 0000000..a6b155e --- /dev/null +++ b/graphics/background/BG Image.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dm8rx8b2mh3p" +path="res://.godot/imported/BG Image.png-a4c16c98f815c26fe14456abfb54be92.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/background/BG Image.png" +dest_files=["res://.godot/imported/BG Image.png-a4c16c98f815c26fe14456abfb54be92.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/graphics/enemies/slime_purple.png b/graphics/enemies/slime_purple.png new file mode 100644 index 0000000..76f564e Binary files /dev/null and b/graphics/enemies/slime_purple.png differ diff --git a/graphics/enemies/slime_purple.png.import b/graphics/enemies/slime_purple.png.import new file mode 100644 index 0000000..9873e1e --- /dev/null +++ b/graphics/enemies/slime_purple.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b35me3ux1dl8t" +path="res://.godot/imported/slime_purple.png-680c7cb80731795ced97a298ff076baf.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/enemies/slime_purple.png" +dest_files=["res://.godot/imported/slime_purple.png-680c7cb80731795ced97a298ff076baf.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/graphics/pickups/coin.png b/graphics/pickups/coin.png new file mode 100644 index 0000000..01ae33d Binary files /dev/null and b/graphics/pickups/coin.png differ diff --git a/graphics/pickups/coin.png.import b/graphics/pickups/coin.png.import new file mode 100644 index 0000000..25daaf4 --- /dev/null +++ b/graphics/pickups/coin.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d1x3fr6xxt4mr" +path="res://.godot/imported/coin.png-b04a16f8896ddd41f884de642ba05be4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/pickups/coin.png" +dest_files=["res://.godot/imported/coin.png-b04a16f8896ddd41f884de642ba05be4.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/scenes/badguy.tscn b/scenes/badguy.tscn new file mode 100644 index 0000000..bb07096 --- /dev/null +++ b/scenes/badguy.tscn @@ -0,0 +1,73 @@ +[gd_scene load_steps=9 format=3 uid="uid://g7p0pn145hpe"] + +[ext_resource type="Texture2D" uid="uid://b35me3ux1dl8t" path="res://graphics/enemies/slime_purple.png" id="1_1ntag"] +[ext_resource type="Script" path="res://scripts/badguy.gd" id="1_v13iu"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_myg18"] +atlas = ExtResource("1_1ntag") +region = Rect2(0, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_n2rjj"] +atlas = ExtResource("1_1ntag") +region = Rect2(24, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_u7k88"] +atlas = ExtResource("1_1ntag") +region = Rect2(48, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nomh7"] +atlas = ExtResource("1_1ntag") +region = Rect2(72, 24, 24, 24) + +[sub_resource type="SpriteFrames" id="SpriteFrames_yk6ef"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_myg18") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_n2rjj") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_u7k88") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nomh7") +}], +"loop": true, +"name": &"chase", +"speed": 12.0 +}] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_1c86m"] +size = Vector2(15, 15) + +[node name="Area2D" type="Area2D"] +script = ExtResource("1_v13iu") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +texture_filter = 1 +sprite_frames = SubResource("SpriteFrames_yk6ef") +animation = &"chase" +autoplay = "chase" +frame_progress = 0.641285 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(-0.5, 4.5) +shape = SubResource("RectangleShape2D_1c86m") + +[node name="RightCast" type="RayCast2D" parent="."] +target_position = Vector2(12, 0) + +[node name="LeftCast" type="RayCast2D" parent="."] +target_position = Vector2(-13, 0) + +[node name="rightFloorCast" type="RayCast2D" parent="."] +position = Vector2(8, 0) +target_position = Vector2(0, 15) + +[node name="leftFloorCast" type="RayCast2D" parent="."] +position = Vector2(-9, 0) +target_position = Vector2(0, 15) + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/scenes/character.tscn b/scenes/character.tscn index a3fcdfb..172986f 100644 --- a/scenes/character.tscn +++ b/scenes/character.tscn @@ -1,10 +1,51 @@ -[gd_scene load_steps=28 format=3 uid="uid://go4yc8hfo1gq"] +[gd_scene load_steps=39 format=3 uid="uid://go4yc8hfo1gq"] [ext_resource type="Script" path="res://scripts/CharacterBody2D.gd" id="1_x87yo"] +[ext_resource type="Texture2D" uid="uid://bwqr703yjxqw" path="res://graphics/Player Death/Player Death 64x64.png" id="2_f63vt"] [ext_resource type="Texture2D" uid="uid://c0iiaebonyhh0" path="res://graphics/Player Idle/Player Idle 48x48.png" id="2_hyqch"] [ext_resource type="Texture2D" uid="uid://xgoqfqmvorcx" path="res://graphics/Player Jump/player jump 48x48.png" id="3_mp84c"] [ext_resource type="Texture2D" uid="uid://vn23qn3f0dvc" path="res://graphics/Player Run/player run 48x48.png" id="4_bok64"] +[sub_resource type="AtlasTexture" id="AtlasTexture_auj82"] +atlas = ExtResource("2_f63vt") +region = Rect2(0, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jg08c"] +atlas = ExtResource("2_f63vt") +region = Rect2(48, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jfk8p"] +atlas = ExtResource("2_f63vt") +region = Rect2(96, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_bqy6m"] +atlas = ExtResource("2_f63vt") +region = Rect2(144, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_70jtw"] +atlas = ExtResource("2_f63vt") +region = Rect2(192, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ynslf"] +atlas = ExtResource("2_f63vt") +region = Rect2(240, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xice0"] +atlas = ExtResource("2_f63vt") +region = Rect2(288, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8aad3"] +atlas = ExtResource("2_f63vt") +region = Rect2(336, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tr830"] +atlas = ExtResource("2_f63vt") +region = Rect2(384, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4hs1w"] +atlas = ExtResource("2_f63vt") +region = Rect2(432, 0, 48, 48) + [sub_resource type="AtlasTexture" id="AtlasTexture_htcu2"] atlas = ExtResource("2_hyqch") region = Rect2(0, 0, 48, 48) @@ -93,6 +134,41 @@ region = Rect2(336, 0, 48, 48) animations = [{ "frames": [{ "duration": 1.0, +"texture": SubResource("AtlasTexture_auj82") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_jg08c") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_jfk8p") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bqy6m") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_70jtw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ynslf") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xice0") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_8aad3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_tr830") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_4hs1w") +}], +"loop": false, +"name": &"death", +"speed": 12.0 +}, { +"frames": [{ +"duration": 1.0, "texture": SubResource("AtlasTexture_htcu2") }, { "duration": 1.0, @@ -182,7 +258,7 @@ metadata/_edit_group_ = true [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] texture_filter = 1 sprite_frames = SubResource("SpriteFrames_a6t6h") -animation = &"idle" +animation = &"death" autoplay = "idle" [node name="CollisionShape2D" type="CollisionShape2D" parent="."] diff --git a/scenes/coin.tscn b/scenes/coin.tscn new file mode 100644 index 0000000..893a598 --- /dev/null +++ b/scenes/coin.tscn @@ -0,0 +1,113 @@ +[gd_scene load_steps=17 format=3 uid="uid://cx6o8fh0fj8kl"] + +[ext_resource type="Script" path="res://scripts/coin.gd" id="1_58pdp"] +[ext_resource type="Texture2D" uid="uid://d1x3fr6xxt4mr" path="res://graphics/pickups/coin.png" id="1_niumm"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_nakd4"] +atlas = ExtResource("1_niumm") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_adin6"] +atlas = ExtResource("1_niumm") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lfnrx"] +atlas = ExtResource("1_niumm") +region = Rect2(32, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_t0c4u"] +atlas = ExtResource("1_niumm") +region = Rect2(48, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_m0p2y"] +atlas = ExtResource("1_niumm") +region = Rect2(64, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_67ond"] +atlas = ExtResource("1_niumm") +region = Rect2(80, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8xf7t"] +atlas = ExtResource("1_niumm") +region = Rect2(96, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_b5h36"] +atlas = ExtResource("1_niumm") +region = Rect2(112, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hs4mo"] +atlas = ExtResource("1_niumm") +region = Rect2(128, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_s4w26"] +atlas = ExtResource("1_niumm") +region = Rect2(144, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wpgnb"] +atlas = ExtResource("1_niumm") +region = Rect2(160, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3yods"] +atlas = ExtResource("1_niumm") +region = Rect2(176, 0, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_h30lo"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_nakd4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_adin6") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_lfnrx") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_t0c4u") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_m0p2y") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_67ond") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_8xf7t") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_b5h36") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hs4mo") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_s4w26") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_wpgnb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_3yods") +}], +"loop": true, +"name": &"default", +"speed": 12.0 +}] + +[sub_resource type="CircleShape2D" id="CircleShape2D_huvfs"] +radius = 4.0 + +[node name="Area2D" type="Area2D"] +script = ExtResource("1_58pdp") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +texture_filter = 1 +sprite_frames = SubResource("SpriteFrames_h30lo") +autoplay = "default" +frame_progress = 0.402311 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_huvfs") + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/scenes/game.tscn b/scenes/game.tscn index 1f71c87..d4e2cfc 100644 --- a/scenes/game.tscn +++ b/scenes/game.tscn @@ -1,11 +1,16 @@ -[gd_scene load_steps=14 format=3 uid="uid://y083suj12rld"] +[gd_scene load_steps=19 format=3 uid="uid://y083suj12rld"] [ext_resource type="Script" path="res://scripts/gamecontroller.gd" id="1_77wyw"] [ext_resource type="PackedScene" uid="uid://go4yc8hfo1gq" path="res://scenes/character.tscn" id="2_64ccm"] [ext_resource type="Texture2D" uid="uid://dwb83f7uoweuy" path="res://graphics/Terrain (32x32).png" id="2_l22q1"] [ext_resource type="Script" path="res://scripts/Trigger.gd" id="2_nfj1w"] +[ext_resource type="Texture2D" uid="uid://dm8rx8b2mh3p" path="res://graphics/background/BG Image.png" id="3_fje8e"] +[ext_resource type="Texture2D" uid="uid://cx7b01o887hk7" path="res://graphics/background/Additional Sky.png" id="4_j5t1o"] +[ext_resource type="Texture2D" uid="uid://byq8ujatf55a1" path="res://graphics/background/Additional Water.png" id="5_pnfsl"] [ext_resource type="PackedScene" uid="uid://ukuu7p7vhlq" path="res://scenes/crate.tscn" id="5_u8rgi"] [ext_resource type="PackedScene" uid="uid://ci10o5e0xpxm8" path="res://scenes/platform.tscn" id="6_80wa1"] +[ext_resource type="PackedScene" uid="uid://cx6o8fh0fj8kl" path="res://scenes/coin.tscn" id="10_0oixj"] +[ext_resource type="PackedScene" uid="uid://g7p0pn145hpe" path="res://scenes/badguy.tscn" id="11_bxgbq"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_xg6qs"] texture = ExtResource("2_l22q1") @@ -481,7 +486,22 @@ sources/0 = SubResource("TileSetAtlasSource_xg6qs") [sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_3u4a8"] [sub_resource type="CircleShape2D" id="CircleShape2D_x8qck"] -radius = 60.2993 +radius = 32.0 + +[sub_resource type="Animation" id="Animation_t7ite"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(0, 0)] +} [sub_resource type="Animation" id="Animation_n7r3j"] resource_name = "move" @@ -499,21 +519,6 @@ tracks/0/keys = { "values": [Vector2(0, 0), Vector2(51, 0)] } -[sub_resource type="Animation" id="Animation_t7ite"] -length = 0.001 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".:position") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector2(0, 0)] -} - [sub_resource type="AnimationLibrary" id="AnimationLibrary_dcgrv"] _data = { "RESET": SubResource("Animation_t7ite"), @@ -521,12 +526,37 @@ _data = { } [node name="Game" type="Node2D"] + +[node name="GameController" type="Node" parent="."] +unique_name_in_owner = true script = ExtResource("1_77wyw") +[node name="Timer" type="Timer" parent="GameController"] + [node name="TileMap" type="TileMap" parent="."] tile_set = SubResource("TileSet_47g5u") format = 2 -layer_0/tile_data = PackedInt32Array(393215, 0, 4, 327680, 65536, 4, 327681, 131072, 4, 131075, 0, 4, 131076, 131072, 4, 327683, 0, 4, 327684, 65536, 4, 327685, 65536, 4, 327686, 65536, 4, 327687, 65536, 4, 327688, 65536, 4, 327689, 65536, 4, 327690, 65536, 4, 327691, 786432, 4, 327692, 65536, 2, 327693, 131072, 2, 327694, 65536, 4, 327695, 131072, 4, 262155, 0, 0, 262156, 458752, 1, 196620, 393216, 3, 196621, 131072, 1, 262157, 458752, 4, 131084, 0, 0, 131085, 131072, 0, 65552, 0, 4, 65553, 131072, 4, 262161, 262144, 4, 65543, 0, 4, 65544, 65536, 4, 65545, 131072, 4, -65525, 983040, 4, -131061, 262144, 1, -196597, 983040, 3, -196596, 65536, 4, -196595, 1048576, 3, -131059, 262144, 1, -65523, 1048576, 4, -65524, 65536, 4) +layer_0/tile_data = PackedInt32Array(393215, 0, 4, 327680, 65536, 4, 327681, 131072, 4, 131075, 0, 4, 131076, 131072, 4, 327683, 0, 4, 327684, 65536, 4, 327685, 65536, 4, 327686, 786432, 4, 327687, 131072, 2, 327688, 65536, 4, 327689, 65536, 4, 327690, 65536, 4, 327691, 786432, 4, 327692, 65536, 2, 327693, 131072, 2, 327694, 65536, 4, 327695, 131072, 4, 262155, 0, 0, 262156, 458752, 1, 196620, 393216, 3, 196621, 131072, 1, 262157, 458752, 4, 131084, 0, 0, 131085, 131072, 0, 65552, 0, 4, 65553, 131072, 4, 262161, 262144, 4, 65543, 0, 4, 65544, 65536, 4, 65545, 131072, 4, -65525, 983040, 4, -131061, 262144, 1, -196597, 983040, 3, -196596, 65536, 4, -196595, 1048576, 3, -131059, 262144, 1, -65523, 1048576, 4, -65524, 65536, 4, 262150, 0, 0, 262151, 131072, 0, 196615, 262144, 0) + +[node name="ParallaxBackground" type="ParallaxBackground" parent="."] + +[node name="ParallaxLayer" type="ParallaxLayer" parent="ParallaxBackground"] +motion_mirroring = Vector2(324, 0) + +[node name="bg" type="Sprite2D" parent="ParallaxBackground/ParallaxLayer"] +position = Vector2(142.5, 50) +scale = Vector2(0.960938, 1) +texture = ExtResource("3_fje8e") + +[node name="sky" type="Sprite2D" parent="ParallaxBackground/ParallaxLayer"] +position = Vector2(164.5, -114) +scale = Vector2(10.1562, 8) +texture = ExtResource("4_j5t1o") + +[node name="water" type="Sprite2D" parent="ParallaxBackground/ParallaxLayer"] +position = Vector2(165, 200.024) +scale = Vector2(10.165, 5.686) +texture = ExtResource("5_pnfsl") [node name="level" type="Node2D" parent="."] @@ -568,5 +598,23 @@ autoplay = "move" [node name="BoxTrap" type="Node2D" parent="."] position = Vector2(276, -83) -[connection signal="areatrigger" from="AreaTrigger" to="." method="_on_area_2d_areatrigger"] +[node name="Coins" type="Node" parent="."] + +[node name="coin" parent="Coins" instance=ExtResource("10_0oixj")] +position = Vector2(116, 151) + +[node name="coin2" parent="Coins" instance=ExtResource("10_0oixj")] +position = Vector2(145, 58) + +[node name="coin3" parent="Coins" instance=ExtResource("10_0oixj")] +position = Vector2(389, 58) + +[node name="coin4" parent="Coins" instance=ExtResource("10_0oixj")] +position = Vector2(398, -40) + +[node name="badguy" parent="." instance=ExtResource("11_bxgbq")] +position = Vector2(153, 146) + +[connection signal="timeout" from="GameController/Timer" to="GameController" method="resetWorld"] +[connection signal="areatrigger" from="AreaTrigger" to="GameController" method="_on_area_2d_areatrigger"] [connection signal="body_entered" from="AreaTrigger" to="AreaTrigger" method="_on_body_entered"] diff --git a/scripts/CharacterBody2D.gd b/scripts/CharacterBody2D.gd index a7c3864..66066a8 100644 --- a/scripts/CharacterBody2D.gd +++ b/scripts/CharacterBody2D.gd @@ -17,88 +17,94 @@ var faceLeft = false var pushLeftEnabled = false var pushRightEnabled = false var pushTarget +var living = true var bullet = preload("res://scenes/bullet.tscn") # Get the gravity from the project settings to be synced with RigidBody nodes. var gravity = ProjectSettings.get_setting("physics/2d/default_gravity") -func _physics_process(delta): - # Add the gravity. - if not is_on_floor(): - velocity.y += gravity * delta - - # Handle jump. - if Input.is_action_just_pressed("ui_accept") and is_on_floor(): - velocity.y = JUMP_VELOCITY - # Hand force push (melee attack) - if Input.is_action_just_pressed("push") && pushRightEnabled && faceLeft == false: - pushTarget.apply_central_impulse(Vector2(1,0) * PUSH_FORCE * 5) - pushRightEnabled = false - if Input.is_action_just_pressed("push") && pushLeftEnabled: - pushTarget.apply_central_impulse(Vector2(-1,0) * PUSH_FORCE * 5) - pushLeftEnabled = false - - if Input.is_action_just_pressed("shoot"): - #make a bullet - var myBullet = bullet.instantiate() - #set bullet speed? - - #put the bullet at the Marker - owner.add_child(myBullet) - if not faceLeft: - # facing right - myBullet.transform = marker_right.global_transform - else: - # facing left - myBullet.transform = marker_left.global_transform - myBullet.setSpeed(-750) - - # Get the input direction and handle the movement/deceleration. - # As good practice, you should replace UI actions with custom gameplay actions. - var direction = Input.get_axis("ui_left", "ui_right") +func die(): + print("kill the player") + animated_sprite.play("death") + living = false - # In this example we have replaced the faceLeft code to also have - # the character's sprite flip depending what direction they are facing - if direction: - faceLeft = true if direction<0 else false - animated_sprite.flip_h = true if direction < 0 else false - velocity.x = direction * SPEED - else: - velocity.x = move_toward(velocity.x, 0, SPEED) - if is_on_floor(): - if direction==0: - animated_sprite.play("idle") - else: - animated_sprite.play("run") - else: - animated_sprite.play("jump") +func _physics_process(delta): + if living: + if not is_on_floor(): + velocity.y += gravity * delta - move_and_slide() - if right_ray.is_colliding(): - print("right ray is colliding") - var collider = right_ray.get_collider() - #what did we hit? - if collider is Node: - if collider.is_in_group("boxes"): - print("This is a pushable box") - pushRightEnabled = true - pushTarget = collider - else: - pushRightEnabled = false + # Handle jump. + if Input.is_action_just_pressed("ui_accept") and is_on_floor(): + velocity.y = JUMP_VELOCITY + # Hand force push (melee attack) + if Input.is_action_just_pressed("push") && pushRightEnabled && faceLeft == false: + pushTarget.apply_central_impulse(Vector2(1,0) * PUSH_FORCE * 5) + pushRightEnabled = false + if Input.is_action_just_pressed("push") && pushLeftEnabled: + pushTarget.apply_central_impulse(Vector2(-1,0) * PUSH_FORCE * 5) + pushLeftEnabled = false + + if Input.is_action_just_pressed("shoot"): + #make a bullet + var myBullet = bullet.instantiate() + #set bullet speed? + + #put the bullet at the Marker + owner.add_child(myBullet) + if not faceLeft: + # facing right + myBullet.transform = marker_right.global_transform + else: + # facing left + myBullet.transform = marker_left.global_transform + myBullet.setSpeed(-750) + + # Get the input direction and handle the movement/deceleration. + # As good practice, you should replace UI actions with custom gameplay actions. + var direction = Input.get_axis("ui_left", "ui_right") - if left_ray.is_colliding(): - print("left ray is colliding") - var collider = left_ray.get_collider() - if collider is Node: - if collider.is_in_group("boxes"): - pushLeftEnabled = true - pushTarget = collider - else: - pushLeftEnabled = false - - #loop through the collisions - for i in get_slide_collision_count(): - var c = get_slide_collision(i) - if c.get_collider() is RigidBody2D: - c.get_collider().apply_central_impulse(-c.get_normal()* BUMP_FORCE) + # In this example we have replaced the faceLeft code to also have + # the character's sprite flip depending what direction they are facing + if direction: + faceLeft = true if direction<0 else false + animated_sprite.flip_h = true if direction < 0 else false + velocity.x = direction * SPEED + else: + velocity.x = move_toward(velocity.x, 0, SPEED) + if is_on_floor(): + if direction==0: + animated_sprite.play("idle") + else: + animated_sprite.play("run") + else: + animated_sprite.play("jump") + + move_and_slide() + if right_ray.is_colliding(): + print("right ray is colliding") + var collider = right_ray.get_collider() + #what did we hit? + if collider is Node: + if collider.is_in_group("boxes"): + print("This is a pushable box") + pushRightEnabled = true + pushTarget = collider + else: + pushRightEnabled = false + + if left_ray.is_colliding(): + print("left ray is colliding") + var collider = left_ray.get_collider() + if collider is Node: + if collider.is_in_group("boxes"): + pushLeftEnabled = true + pushTarget = collider + else: + pushLeftEnabled = false + + #loop through the collisions + for i in get_slide_collision_count(): + var c = get_slide_collision(i) + if c.get_collider() is RigidBody2D: + c.get_collider().apply_central_impulse(-c.get_normal()* BUMP_FORCE) diff --git a/scripts/badguy.gd b/scripts/badguy.gd new file mode 100644 index 0000000..59671a2 --- /dev/null +++ b/scripts/badguy.gd @@ -0,0 +1,40 @@ +extends Area2D + +const speed = 60 +var direction = 1 + +@onready var right_cast = $RightCast +@onready var left_cast = $LeftCast +@onready var right_floor_cast = $rightFloorCast +@onready var left_floor_cast = $leftFloorCast +@onready var sprite = $AnimatedSprite2D +@onready var game = %GameController + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + if right_cast.is_colliding(): + if not right_cast.get_collider().is_in_group("player"): + direction = -1 + sprite.flip_h = true + if left_cast.is_colliding(): + if not left_cast.get_collider().is_in_group("player"): + direction = 1 + sprite.flip_h = false + if not right_floor_cast.is_colliding(): + direction = -1 + sprite.flip_h = true + if not left_floor_cast.is_colliding(): + direction = 1 + sprite.flip_h = false + #move the dude + position.x += direction * speed * delta + + +func _on_body_entered(body): + if body.is_in_group("player"): + game.playerDeath() diff --git a/scripts/coin.gd b/scripts/coin.gd new file mode 100644 index 0000000..338b04c --- /dev/null +++ b/scripts/coin.gd @@ -0,0 +1,19 @@ +extends Area2D +@onready var game = %GameController + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + pass + + +func _on_body_entered(body): + if body.is_in_group("player"): + print("something hit the coin") + game.coinCollected() + queue_free() diff --git a/scripts/gamecontroller.gd b/scripts/gamecontroller.gd index 8925358..9e4cf77 100644 --- a/scripts/gamecontroller.gd +++ b/scripts/gamecontroller.gd @@ -1,7 +1,12 @@ -extends Node2D +extends Node var myBox = preload("res://scenes/crate.tscn") -@onready var box_trap = $BoxTrap +@onready var box_trap = $"../BoxTrap" +@onready var timer = $Timer +@onready var player = $"../CharacterBody2D" + + +var totalCoins = 0 # Called when the node enters the scene tree for the first time. func _ready(): @@ -22,7 +27,18 @@ func _on_area_2d_areatrigger(effect, body): if body.is_in_group("player"): for n in 3: var box = myBox.instantiate() - add_child(box) + owner.add_child(box) box.position = box_trap.position "powerup": print("you got power") + +func coinCollected(): + + totalCoins += 1 + print("Game controller will add coin " + str(totalCoins) ) +func playerDeath(): + player.die() + timer.start() + +func resetWorld(): + get_tree().reload_current_scene()