week 5 enemies pickups player death

This commit is contained in:
Jeremy 2024-08-12 21:10:25 -04:00
parent 17520bb17d
commit d4b5181c01
76 changed files with 1308 additions and 163 deletions

View File

@ -0,0 +1,3 @@
[folding]
sections_unfolded=PackedStringArray()

View File

@ -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(-52.3034, -21.1039),
"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": 6.3496
}
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")])

View File

@ -0,0 +1,5 @@
[folding]
node_unfolds=[NodePath("AnimatedSprite2D"), PackedStringArray("Animation", "sprite_frames", "Texture")]
resource_unfolds=["res://scenes/badguy.tscn::SpriteFrames_uh2us", PackedStringArray(), "res://scenes/badguy.tscn::RectangleShape2D_vdsen", PackedStringArray()]
nodes_folded=[]

View File

@ -172,4 +172,4 @@ Anim={
"zfar": 4000.01, "zfar": 4000.01,
"znear": 0.05 "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/level/StaticBody2D/CollisionShape2D")]) 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")])

View File

@ -8,7 +8,7 @@ Anim={
"grid_snap_active": false, "grid_snap_active": false,
"grid_step": Vector2(8, 8), "grid_step": Vector2(8, 8),
"grid_visibility": 1, "grid_visibility": 1,
"ofs": Vector2(-116.383, -59.1309), "ofs": Vector2(-103.803, -28.6502),
"primary_grid_step": Vector2i(8, 8), "primary_grid_step": Vector2i(8, 8),
"show_edit_locks": true, "show_edit_locks": true,
"show_guides": true, "show_guides": true,
@ -32,7 +32,7 @@ Anim={
"snap_rotation_step": 0.261799, "snap_rotation_step": 0.261799,
"snap_scale": false, "snap_scale": false,
"snap_scale_step": 0.1, "snap_scale_step": 0.1,
"zoom": 6.3496 "zoom": 5.99323
} }
3D={ 3D={
"fov": 70.01, "fov": 70.01,
@ -172,4 +172,4 @@ Anim={
"zfar": 4000.01, "zfar": 4000.01,
"znear": 0.05 "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/level/StaticBody2D/CollisionShape2D")]) 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")])

View File

@ -0,0 +1,3 @@
[folding]
sections_unfolded=PackedStringArray()

View File

@ -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(-75.75, -58.5),
"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": 4.0
}
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")])

View File

@ -0,0 +1,5 @@
[folding]
node_unfolds=[NodePath("AnimatedSprite2D"), PackedStringArray("Animation", "sprite_frames", "Texture")]
resource_unfolds=["res://scenes/coin.tscn::SpriteFrames_w1v5w", PackedStringArray(), "res://scenes/coin.tscn::CircleShape2D_ngajn", PackedStringArray()]
nodes_folded=[]

View File

@ -172,4 +172,4 @@ Anim={
"zfar": 4000.01, "zfar": 4000.01,
"znear": 0.05 "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/level/StaticBody2D/CollisionShape2D")]) 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")])

View File

@ -1,11 +1,14 @@
Node2D Timer
AnimationPlayer RayCast2D
CollisionShape2D CollisionShape2D
AnimatableBody2D
Sprite2D
Camera2D
TileMap
Node
AnimatedSprite2D AnimatedSprite2D
Area2D Area2D
RayCast2D Node
Sprite2D
ParallaxLayer
ParallaxBackground
Node2D
AnimationPlayer
AnimatableBody2D
Camera2D
TileMap

View File

@ -19,24 +19,24 @@ dock_filesystem_split=0
dock_filesystem_display_mode=0 dock_filesystem_display_mode=0
dock_filesystem_file_sort=0 dock_filesystem_file_sort=0
dock_filesystem_file_list_display_mode=1 dock_filesystem_file_list_display_mode=1
dock_filesystem_selected_paths=PackedStringArray("res://scripts/Trigger.gd") dock_filesystem_selected_paths=PackedStringArray("res://graphics/Player Death/")
dock_filesystem_uncollapsed_paths=PackedStringArray("Favorites", "res://", "res://scripts/", "res://scenes/", "res://graphics/", "res://graphics/items/") dock_filesystem_uncollapsed_paths=PackedStringArray("Favorites", "res://", "res://scripts/", "res://scenes/", "res://graphics/", "res://graphics/Player Death/", "res://graphics/pickups/", "res://graphics/enemies/")
dock_3="Scene,Import" dock_3="Scene,Import"
dock_4="FileSystem" dock_4="FileSystem"
dock_5="Inspector,Node,History" dock_5="Inspector,Node,History"
[EditorNode] [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" current_scene="res://scenes/game.tscn"
center_split_offset=-397 center_split_offset=-397
selected_default_debugger_tab_idx=0 selected_default_debugger_tab_idx=0
selected_main_editor_idx=0 selected_main_editor_idx=2
selected_bottom_panel_item=0 selected_bottom_panel_item=0
[ScriptEditor] [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" selected_script="res://scripts/gamecontroller.gd"
open_help=[] open_help=[]
script_split_offset=70 script_split_offset=70

View File

@ -1,26 +1,42 @@
ea4bc82a6ad023ab7ee23ee620429895 ea4bc82a6ad023ab7ee23ee620429895
::res://::1722291986 ::res://::1723510012
icon.svg::CompressedTexture2D::9114977118871582245::1722289482::1722289482::1::::<><>:: icon.svg::CompressedTexture2D::9114977118871582245::1723500937::1723500937::1::::<><>::
::res://graphics/::1722289482 ::res://graphics/::1723510012
Terrain (32x32).png::CompressedTexture2D::8707534964839485024::1722289482::1722289482::1::::<><>:: Terrain (32x32).png::CompressedTexture2D::8707534964839485024::1723500937::1723500937::1::::<><>::
::res://graphics/items/::1722297925 ::res://graphics/background/::1723502317
bullet.png::CompressedTexture2D::4146801143722277085::1722297925::1722297925::1::::<><>:: Additional Sky.png::CompressedTexture2D::7405875053565000941::1723501352::1723501363::1::::<><>::
cannister.png::CompressedTexture2D::7418095402531000042::1722289482::1722289482::1::::<><>:: Additional Water.png::CompressedTexture2D::5548836167267955277::1723501352::1723501363::1::::<><>::
::res://graphics/Player Idle/::1722289482 BG Image.png::CompressedTexture2D::4005256289399045782::1723501352::1723501363::1::::<><>::
Player Idle 48x48.png::CompressedTexture2D::6544563428604246579::1722289482::1722289482::1::::<><>:: ::res://graphics/enemies/::1723506310
::res://graphics/Player Jump/::1722289482 slime_green.png::CompressedTexture2D::1134669905662794867::1723506254::1723506310::1::::<><>::
player jump 48x48.png::CompressedTexture2D::1627608568707791839::1722289482::1722289482::1::::<><>:: slime_purple.png::CompressedTexture2D::3992152575753882488::1723506254::1723506310::1::::<><>::
::res://graphics/Player Land/::1722289482 ::res://graphics/items/::1723500937
player land 48x48.png::CompressedTexture2D::3499637713582873633::1722289482::1722289482::1::::<><>:: bullet.png::CompressedTexture2D::4146801143722277085::1723500937::1723500937::1::::<><>::
::res://graphics/Player Run/::1722289482 cannister.png::CompressedTexture2D::7418095402531000042::1723500937::1723500937::1::::<><>::
player run 48x48.png::CompressedTexture2D::1502492849971408816::1722289482::1722289482::1::::<><>:: ::res://graphics/pickups/::1723502549
::res://scenes/::1722297258 coin.png::CompressedTexture2D::3843186516589658432::1723502532::1723502549::1::::<><>::
bullet.tscn::PackedScene::6880909734590904373::1722297258::0::1::::<><>::res://scripts/bullet.gd ::res://graphics/Player Death/::1723510012
character.tscn::PackedScene::451838158579532324::1722297258::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 Player Death 64x64.png::CompressedTexture2D::7118346198518807013::1723509990::1723510012::1::::<><>::
crate.tscn::PackedScene::41931541512830250::1722297258::0::1::::<><>::uid://ddxm7hj323fta::::res://graphics/items/cannister.png ::res://graphics/Player Idle/::1723500937
game.tscn::PackedScene::1738196330916037717::1722297258::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 Player Idle 48x48.png::CompressedTexture2D::6544563428604246579::1723500937::1723500937::1::::<><>::
::res://scripts/::1722293659 ::res://graphics/Player Jump/::1723500937
bullet.gd::GDScript::-1::1722289482::0::1::::<>Area2D<>:: player jump 48x48.png::CompressedTexture2D::1627608568707791839::1723500937::1723500937::1::::<><>::
CharacterBody2D.gd::GDScript::-1::1722293659::0::1::::<>CharacterBody2D<>:: ::res://graphics/Player Land/::1723500937
gamecontroller.gd::GDScript::-1::1722289482::0::1::::<>Node2D<>:: player land 48x48.png::CompressedTexture2D::3499637713582873633::1723500937::1723500937::1::::<><>::
Trigger.gd::GDScript::-1::1722289482::0::1::::<>Area2D<>:: ::res://graphics/Player Run/::1723500937
player run 48x48.png::CompressedTexture2D::1502492849971408816::1723500937::1723500937::1::::<><>::
::res://scenes/::1723509760
badguy.tscn::PackedScene::8649992596256653425::1723509760::0::1::::<><>::res://scripts/badguy.gd<>uid://bw43f1enjixbk::::res://graphics/enemies/slime_purple.png
bullet.tscn::PackedScene::6880909734590904373::1723509745::0::1::::<><>::res://scripts/bullet.gd<>uid://b0c0hdt3afypx::::res://graphics/items/bullet.png
character.tscn::PackedScene::451838158579532324::1723509745::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::2256142337678812705::1723509745::0::1::::<><>::uid://bu0wyq230xip1::::res://graphics/pickups/coin.png<>res://scripts/coin.gd
crate.tscn::PackedScene::41931541512830250::1723509745::0::1::::<><>::uid://ddxm7hj323fta::::res://graphics/items/cannister.png
game.tscn::PackedScene::1738196330916037717::1723509745::0::1::::<><>::res://scripts/gamecontroller.gd<>uid://go4yc8hfo1gq::::res://scenes/character.tscn<>uid://dwb83f7uoweuy::::res://graphics/Terrain (32x32).png<>res://scripts/Trigger.gd<>uid://bxcf8ryispa5c::::res://graphics/background/BG Image.png<>uid://ddrpxehpjros0::::res://graphics/background/Additional Sky.png<>uid://clb5ryiub2nfh::::res://graphics/background/Additional Water.png<>uid://ukuu7p7vhlq::::res://scenes/crate.tscn<>uid://i3l8y3rbx4o1::::res://scenes/platform.tscn<>uid://7e5lm5ck08k8::::res://scenes/coin.tscn<>uid://dvied5dxkc7e0::::res://scenes/badguy.tscn
platform.tscn::PackedScene::620041448926829138::1723509745::0::1::::<><>::
::res://scripts/::1723509745
badguy.gd::GDScript::-1::1723509745::0::1::::<>Area2D<>::
bullet.gd::GDScript::-1::1723500937::0::1::::<>Area2D<>::
CharacterBody2D.gd::GDScript::-1::1723500937::0::1::::<>CharacterBody2D<>::
coin.gd::GDScript::-1::1723504936::0::1::::<>Area2D<>::
gamecontroller.gd::GDScript::-1::1723509527::0::1::::<>Node<>::
Trigger.gd::GDScript::-1::1723500937::0::1::::<>Area2D<>::

View File

@ -2,6 +2,9 @@ res://scenes/game.tscn
res://scenes/character.tscn res://scenes/character.tscn
res://scenes/bullet.tscn res://scenes/bullet.tscn
res://scenes/crate.tscn res://scenes/crate.tscn
res://scripts/CharacterBody2D.gd
res://scenes/platform.tscn res://scenes/platform.tscn
res://scenes/coin.tscn
res://scenes/badguy.tscn
res://scripts/gamecontroller.gd res://scripts/gamecontroller.gd
res://scripts/badguy.gd
res://scripts/CharacterBody2D.gd

View File

@ -8,7 +8,7 @@ Anim={
"grid_snap_active": false, "grid_snap_active": false,
"grid_step": Vector2(8, 8), "grid_step": Vector2(8, 8),
"grid_visibility": 1, "grid_visibility": 1,
"ofs": Vector2(-383.852, -188.74), "ofs": Vector2(-267.416, -219.461),
"primary_grid_step": Vector2i(8, 8), "primary_grid_step": Vector2i(8, 8),
"show_edit_locks": true, "show_edit_locks": true,
"show_guides": true, "show_guides": true,
@ -32,7 +32,7 @@ Anim={
"snap_rotation_step": 0.261799, "snap_rotation_step": 0.261799,
"snap_scale": false, "snap_scale": false,
"snap_scale_step": 0.1, "snap_scale_step": 0.1,
"zoom": 1.18921 "zoom": 1.12246
} }
3D={ 3D={
"fov": 70.01, "fov": 70.01,
@ -172,4 +172,4 @@ Anim={
"zfar": 4000.01, "zfar": 4000.01,
"znear": 0.05 "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/level/StaticBody2D/CollisionShape2D")]) 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")])

View File

@ -1,5 +1,5 @@
[folding] [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/Sprite2D"), PackedStringArray("Transform"), NodePath("ParallaxBackground/ParallaxLayer/Sprite2D2"), PackedStringArray("Transform"), NodePath("ParallaxBackground/ParallaxLayer/Sprite2D3"), 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("physics_layer__array"), "res://scenes/game.tscn::WorldBoundaryShape2D_3u4a8", PackedStringArray("Resource"), "res://scenes/game.tscn::CircleShape2D_x8qck", PackedStringArray("Resource")] resource_unfolds=["res://scenes/game.tscn::TileSet_47g5u", PackedStringArray("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=[NodePath("AreaTrigger")]

View File

@ -1,7 +1,7 @@
[editor_states] [editor_states]
Anim={ Anim={
"visible": true "visible": false
} }
2D={ 2D={
"grid_offset": Vector2(0, 0), "grid_offset": Vector2(0, 0),
@ -172,4 +172,4 @@ Anim={
"zfar": 4000.01, "zfar": 4000.01,
"znear": 0.05 "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/level/StaticBody2D/CollisionShape2D")]) 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")])

View File

@ -1,6 +1,6 @@
[editor_metadata] [editor_metadata]
executable_path="/home/timbeezy/Documents/software/godot/Godot_v4.2.1-stable_linux.x86_64" executable_path="/home/timberg/Documents/software/godot/Godot_v4.2.1-stable_linux.x86_64"
use_advanced_connections=false use_advanced_connections=false
tile_source_sort=0 tile_source_sort=0
tile_snap_option=0 tile_snap_option=0
@ -14,8 +14,8 @@ run_debug_collisions=true
[recent_files] [recent_files]
scenes=["res://scenes/platform.tscn", "res://scenes/crate.tscn", "res://scenes/bullet.tscn", "res://scenes/character.tscn", "res://scenes/game.tscn"] 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/Trigger.gd", "res://scripts/bullet.gd", "res://scripts/CharacterBody2D.gd", "res://scripts/gamecontroller.gd"] 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] [linked_properties]
@ -33,6 +33,10 @@ Camera2D:zoom=true
Camera2D:scale=true Camera2D:scale=true
Sprite2D:scale=true Sprite2D:scale=true
AnimatableBody2D:scale=true AnimatableBody2D:scale=true
ParallaxBackground:scroll_base_scale=true
ParallaxBackground:scale=true
ParallaxLayer:motion_scale=true
ParallaxLayer:scale=true
[dialog_bounds] [dialog_bounds]

View File

@ -1,5 +1,8 @@
res://graphics/Player Death
res://scripts
res://graphics/enemies
res://scenes res://scenes
res://graphics/pickups
res://graphics/Player Jump res://graphics/Player Jump
res://graphics/Player Run res://graphics/Player Run
res://graphics/Player Idle res://graphics/Player Idle
res://scripts

View File

@ -3,11 +3,11 @@
state={ state={
"bookmarks": PackedInt32Array(), "bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(), "breakpoints": PackedInt32Array(),
"column": 34, "column": 13,
"folded_lines": Array[int]([]), "folded_lines": Array[int]([]),
"h_scroll_position": 0, "h_scroll_position": 0,
"row": 23, "row": 37,
"scroll_position": 10.0, "scroll_position": 25.0,
"selection": false, "selection": false,
"syntax_highlighter": "GDScript" "syntax_highlighter": "GDScript"
} }
@ -17,11 +17,11 @@ state={
state={ state={
"bookmarks": PackedInt32Array(), "bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(), "breakpoints": PackedInt32Array(),
"column": 25, "column": 15,
"folded_lines": Array[int]([]), "folded_lines": Array[int]([]),
"h_scroll_position": 0, "h_scroll_position": 0,
"row": 54, "row": 28,
"scroll_position": 39.0, "scroll_position": 20.0,
"selection": false, "selection": false,
"syntax_highlighter": "GDScript" "syntax_highlighter": "GDScript"
} }
@ -53,3 +53,31 @@ state={
"selection": false, "selection": false,
"syntax_highlighter": "GDScript" "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": 20,
"folded_lines": Array[int]([]),
"h_scroll_position": 0,
"row": 38,
"scroll_position": 22.0,
"selection": false,
"syntax_highlighter": "GDScript"
}

View File

@ -0,0 +1,3 @@
source_md5="ef05607ab18b6e14047ef305d4967bca"
dest_md5="c4a79c607243be25d3669dc2144fdbe8"

View File

@ -0,0 +1,3 @@
source_md5="ef05607ab18b6e14047ef305d4967bca"
dest_md5="c4a79c607243be25d3669dc2144fdbe8"

View File

@ -0,0 +1,3 @@
source_md5="707fe1be51389c0a7dc6bce6b8df1ad8"
dest_md5="a1f827ff5491bfc85a30898cd8164541"

View File

@ -0,0 +1,3 @@
source_md5="707fe1be51389c0a7dc6bce6b8df1ad8"
dest_md5="a1f827ff5491bfc85a30898cd8164541"

View File

@ -0,0 +1,3 @@
source_md5="7f10db4045810c42977343e59a782178"
dest_md5="c50c902db0eea75f65be64479d81b3ae"

View File

@ -0,0 +1,3 @@
source_md5="7f10db4045810c42977343e59a782178"
dest_md5="c50c902db0eea75f65be64479d81b3ae"

View File

@ -0,0 +1,3 @@
source_md5="e5256a9ceb0ab699f4b89ff036b2a902"
dest_md5="9cd9459a73f825afbfd37992d6a40bfb"

View File

@ -0,0 +1,3 @@
source_md5="e5256a9ceb0ab699f4b89ff036b2a902"
dest_md5="9cd9459a73f825afbfd37992d6a40bfb"

View File

@ -0,0 +1,3 @@
source_md5="9972ae36d7f15087663eef880c2522c7"
dest_md5="6323bfa165d4025b36e466114be0533d"

View File

@ -0,0 +1,3 @@
source_md5="9972ae36d7f15087663eef880c2522c7"
dest_md5="6323bfa165d4025b36e466114be0533d"

View File

@ -0,0 +1,3 @@
source_md5="9972ae36d7f15087663eef880c2522c7"
dest_md5="6323bfa165d4025b36e466114be0533d"

View File

@ -0,0 +1,3 @@
source_md5="2721669a4b3bd4204bfcb0977915dd6d"
dest_md5="564335e3510b66c129befe8591a0d6f0"

View File

@ -0,0 +1,3 @@
source_md5="2721669a4b3bd4204bfcb0977915dd6d"
dest_md5="564335e3510b66c129befe8591a0d6f0"

View File

@ -0,0 +1,3 @@
source_md5="2721669a4b3bd4204bfcb0977915dd6d"
dest_md5="564335e3510b66c129befe8591a0d6f0"

View File

@ -0,0 +1,3 @@
source_md5="54f57af24a12b9a7016da6f96c55a77d"
dest_md5="d56883b02fd383d0809e6e9ecbe5df3b"

View File

@ -0,0 +1,3 @@
source_md5="54f57af24a12b9a7016da6f96c55a77d"
dest_md5="d56883b02fd383d0809e6e9ecbe5df3b"

View File

@ -0,0 +1,3 @@
source_md5="54f57af24a12b9a7016da6f96c55a77d"
dest_md5="d56883b02fd383d0809e6e9ecbe5df3b"

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c8ogee5u6uxld"
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ddrpxehpjros0"
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://clb5ryiub2nfh"
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bxcf8ryispa5c"
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 908 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://qfv32134f4tb"
path="res://.godot/imported/slime_green.png-5465ec1b559c454faabc599e0b746844.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://graphics/enemies/slime_green.png"
dest_files=["res://.godot/imported/slime_green.png-5465ec1b559c454faabc599e0b746844.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bw43f1enjixbk"
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

BIN
graphics/pickups/coin.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bu0wyq230xip1"
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

73
scenes/badguy.tscn Normal file
View File

@ -0,0 +1,73 @@
[gd_scene load_steps=9 format=3 uid="uid://dvied5dxkc7e0"]
[ext_resource type="Script" path="res://scripts/badguy.gd" id="1_7u81x"]
[ext_resource type="Texture2D" uid="uid://bw43f1enjixbk" path="res://graphics/enemies/slime_purple.png" id="1_anh2u"]
[sub_resource type="AtlasTexture" id="AtlasTexture_o20x5"]
atlas = ExtResource("1_anh2u")
region = Rect2(0, 24, 24, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_o8v3c"]
atlas = ExtResource("1_anh2u")
region = Rect2(24, 24, 24, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_tsden"]
atlas = ExtResource("1_anh2u")
region = Rect2(48, 24, 24, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_o7cwn"]
atlas = ExtResource("1_anh2u")
region = Rect2(72, 24, 24, 24)
[sub_resource type="SpriteFrames" id="SpriteFrames_uh2us"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_o20x5")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_o8v3c")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_tsden")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_o7cwn")
}],
"loop": true,
"name": &"chase",
"speed": 12.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_vdsen"]
size = Vector2(14, 15)
[node name="Area2D" type="Area2D"]
script = ExtResource("1_7u81x")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
texture_filter = 1
sprite_frames = SubResource("SpriteFrames_uh2us")
animation = &"chase"
autoplay = "chase"
frame_progress = 0.56706
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, 4.5)
shape = SubResource("RectangleShape2D_vdsen")
[node name="RightCast" type="RayCast2D" parent="."]
target_position = Vector2(13, 0)
[node name="LeftCast" type="RayCast2D" parent="."]
target_position = Vector2(-13, 0)
[node name="rightFloorCast" type="RayCast2D" parent="."]
position = Vector2(7, 0)
target_position = Vector2(0, 15)
[node name="leftFloorCast" type="RayCast2D" parent="."]
position = Vector2(-7, 0)
target_position = Vector2(0, 15)
[connection signal="body_entered" from="." to="." method="_on_body_entered"]

View File

@ -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="Script" path="res://scripts/CharacterBody2D.gd" id="1_x87yo"]
[ext_resource type="Texture2D" uid="uid://c8ogee5u6uxld" path="res://graphics/Player Death/Player Death 64x64.png" id="2_byx7v"]
[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://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://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"] [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_i0o8b"]
atlas = ExtResource("2_byx7v")
region = Rect2(0, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_ppvnc"]
atlas = ExtResource("2_byx7v")
region = Rect2(48, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_yo8u7"]
atlas = ExtResource("2_byx7v")
region = Rect2(96, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_eioko"]
atlas = ExtResource("2_byx7v")
region = Rect2(144, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_dmhe1"]
atlas = ExtResource("2_byx7v")
region = Rect2(192, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_joqoj"]
atlas = ExtResource("2_byx7v")
region = Rect2(240, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_bykew"]
atlas = ExtResource("2_byx7v")
region = Rect2(288, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_b7x2x"]
atlas = ExtResource("2_byx7v")
region = Rect2(336, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_7lf4o"]
atlas = ExtResource("2_byx7v")
region = Rect2(384, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_gcy07"]
atlas = ExtResource("2_byx7v")
region = Rect2(432, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_htcu2"] [sub_resource type="AtlasTexture" id="AtlasTexture_htcu2"]
atlas = ExtResource("2_hyqch") atlas = ExtResource("2_hyqch")
region = Rect2(0, 0, 48, 48) region = Rect2(0, 0, 48, 48)
@ -93,6 +134,41 @@ region = Rect2(336, 0, 48, 48)
animations = [{ animations = [{
"frames": [{ "frames": [{
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_i0o8b")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ppvnc")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_yo8u7")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_eioko")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dmhe1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_joqoj")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_bykew")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_b7x2x")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7lf4o")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_gcy07")
}],
"loop": false,
"name": &"death",
"speed": 12.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_htcu2") "texture": SubResource("AtlasTexture_htcu2")
}, { }, {
"duration": 1.0, "duration": 1.0,
@ -182,8 +258,10 @@ metadata/_edit_group_ = true
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
texture_filter = 1 texture_filter = 1
sprite_frames = SubResource("SpriteFrames_a6t6h") sprite_frames = SubResource("SpriteFrames_a6t6h")
animation = &"idle" animation = &"death"
autoplay = "idle" autoplay = "idle"
frame = 9
frame_progress = 1.0
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, 3) position = Vector2(0, 3)

112
scenes/coin.tscn Normal file
View File

@ -0,0 +1,112 @@
[gd_scene load_steps=17 format=3 uid="uid://7e5lm5ck08k8"]
[ext_resource type="Texture2D" uid="uid://bu0wyq230xip1" path="res://graphics/pickups/coin.png" id="1_a1ga2"]
[ext_resource type="Script" path="res://scripts/coin.gd" id="1_xu2uf"]
[sub_resource type="AtlasTexture" id="AtlasTexture_cphs5"]
atlas = ExtResource("1_a1ga2")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_24jk6"]
atlas = ExtResource("1_a1ga2")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_rgjgj"]
atlas = ExtResource("1_a1ga2")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_8ci21"]
atlas = ExtResource("1_a1ga2")
region = Rect2(48, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_i0cu2"]
atlas = ExtResource("1_a1ga2")
region = Rect2(64, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_wtwtd"]
atlas = ExtResource("1_a1ga2")
region = Rect2(80, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_yxweu"]
atlas = ExtResource("1_a1ga2")
region = Rect2(96, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_b7n6q"]
atlas = ExtResource("1_a1ga2")
region = Rect2(112, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_mpw0r"]
atlas = ExtResource("1_a1ga2")
region = Rect2(128, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_o1nu1"]
atlas = ExtResource("1_a1ga2")
region = Rect2(144, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_frg1o"]
atlas = ExtResource("1_a1ga2")
region = Rect2(160, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_efpui"]
atlas = ExtResource("1_a1ga2")
region = Rect2(176, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_w1v5w"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_cphs5")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_24jk6")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_rgjgj")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_8ci21")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_i0cu2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_wtwtd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_yxweu")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_b7n6q")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_mpw0r")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_o1nu1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_frg1o")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_efpui")
}],
"loop": true,
"name": &"default",
"speed": 12.0
}]
[sub_resource type="CircleShape2D" id="CircleShape2D_ngajn"]
radius = 6.0
[node name="Area2D" type="Area2D"]
script = ExtResource("1_xu2uf")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
texture_filter = 1
sprite_frames = SubResource("SpriteFrames_w1v5w")
autoplay = "default"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_ngajn")
[connection signal="body_entered" from="." to="." method="_on_body_entered"]

View File

@ -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="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="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="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="Script" path="res://scripts/Trigger.gd" id="2_nfj1w"]
[ext_resource type="Texture2D" uid="uid://bxcf8ryispa5c" path="res://graphics/background/BG Image.png" id="3_v42n4"]
[ext_resource type="Texture2D" uid="uid://ddrpxehpjros0" path="res://graphics/background/Additional Sky.png" id="4_ch8sb"]
[ext_resource type="Texture2D" uid="uid://clb5ryiub2nfh" path="res://graphics/background/Additional Water.png" id="5_01lp1"]
[ext_resource type="PackedScene" uid="uid://ukuu7p7vhlq" path="res://scenes/crate.tscn" id="5_u8rgi"] [ext_resource type="PackedScene" uid="uid://ukuu7p7vhlq" path="res://scenes/crate.tscn" id="5_u8rgi"]
[ext_resource type="PackedScene" uid="uid://i3l8y3rbx4o1" path="res://scenes/platform.tscn" id="6_t5a05"] [ext_resource type="PackedScene" uid="uid://i3l8y3rbx4o1" path="res://scenes/platform.tscn" id="6_t5a05"]
[ext_resource type="PackedScene" uid="uid://7e5lm5ck08k8" path="res://scenes/coin.tscn" id="10_yjg5o"]
[ext_resource type="PackedScene" uid="uid://dvied5dxkc7e0" path="res://scenes/badguy.tscn" id="11_ovphn"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_xg6qs"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_xg6qs"]
texture = ExtResource("2_l22q1") texture = ExtResource("2_l22q1")
@ -482,6 +487,21 @@ sources/0 = SubResource("TileSetAtlasSource_xg6qs")
[sub_resource type="CircleShape2D" id="CircleShape2D_x8qck"] [sub_resource type="CircleShape2D" id="CircleShape2D_x8qck"]
radius = 60.2993 radius = 60.2993
[sub_resource type="Animation" id="Animation_4jf1k"]
loop_mode = 2
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, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(186, -65), Vector2(56, -65)]
}
[sub_resource type="Animation" id="Animation_scpii"] [sub_resource type="Animation" id="Animation_scpii"]
resource_name = "move" resource_name = "move"
loop_mode = 2 loop_mode = 2
@ -498,21 +518,6 @@ tracks/0/keys = {
"values": [Vector2(66, -71), Vector2(131, -71)] "values": [Vector2(66, -71), Vector2(131, -71)]
} }
[sub_resource type="Animation" id="Animation_4jf1k"]
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_5sp7p"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_5sp7p"]
_data = { _data = {
"RESET": SubResource("Animation_4jf1k"), "RESET": SubResource("Animation_4jf1k"),
@ -520,12 +525,37 @@ _data = {
} }
[node name="Game" type="Node2D"] [node name="Game" type="Node2D"]
[node name="GameController" type="Node" parent="."]
unique_name_in_owner = true
script = ExtResource("1_77wyw") script = ExtResource("1_77wyw")
[node name="Timer" type="Timer" parent="GameController"]
[node name="TileMap" type="TileMap" parent="."] [node name="TileMap" type="TileMap" parent="."]
tile_set = SubResource("TileSet_47g5u") tile_set = SubResource("TileSet_47g5u")
format = 2 format = 2
layer_0/tile_data = PackedInt32Array(262141, 786432, 4, 262142, 65536, 4, 262143, 65536, 4, 196608, 65536, 4, 196609, 65536, 4, 196610, 131072, 4, 262149, 0, 1, 327685, 0, 2, 327686, 589824, 4, 327687, 65536, 2, 327688, 655360, 4, 327689, 65536, 2, 262153, 65536, 1, 196617, 655360, 3, 196616, 655360, 3, 196615, 65536, 0, 196614, 589824, 3, 196613, 0, 0, 262150, 65536, 1, 262151, 65536, 1, 262152, 65536, 1, 196618, 65536, 0, 262154, 65536, 1, 327690, 655360, 4, 327691, 65536, 2, 262155, 65536, 1, 196619, 655360, 3, 196620, 65536, 0, 262156, 65536, 1, 327692, 65536, 2, 65539, 0, 4, 65540, 131072, 4, -65540, 0, 0, -4, 393216, 4, 65532, 393216, 3, 131068, 0, 1, 131069, 458752, 3, 65533, 458752, 4, -3, 131072, 1, -65539, 131072, 0, 196605, 458752, 3, 196604, 393216, 3, 262140, 0, 2, 65535, 262144, 4, -65535, 262144, 4, 8, 0, 2, 9, 589824, 4, 10, 131072, 2, -65526, 131072, 0, -65527, 655360, 3, -65528, 0, 0, 6, 262144, 0, 65542, 262144, 2, 196621, 589824, 3, 196622, 131072, 0, 262158, 131072, 1, 327694, 131072, 2, 327693, 65536, 2, 262157, 65536, 1, -262132, 983040, 3, -262131, 65536, 4, -262130, 1048576, 3, -196594, 262144, 1, -131058, 1048576, 4, -131059, 65536, 4, -131060, 983040, 4, -196596, 262144, 1) layer_0/tile_data = PackedInt32Array(262141, 786432, 4, 262142, 65536, 4, 262143, 65536, 4, 196608, 65536, 4, 196609, 65536, 4, 196610, 131072, 4, 262149, 0, 1, 327685, 0, 2, 327686, 589824, 4, 327687, 65536, 2, 327688, 655360, 4, 327689, 65536, 2, 262153, 65536, 1, 196617, 655360, 3, 196616, 655360, 3, 196615, 65536, 0, 196614, 589824, 3, 196613, 0, 0, 262150, 65536, 1, 262151, 65536, 1, 262152, 65536, 1, 196618, 65536, 0, 262154, 65536, 1, 327690, 655360, 4, 327691, 65536, 2, 262155, 65536, 1, 196619, 655360, 3, 196620, 65536, 0, 262156, 65536, 1, 327692, 65536, 2, 65539, 0, 4, 65540, 131072, 4, -65540, 0, 0, -4, 393216, 4, 65532, 393216, 3, 131068, 0, 1, 131069, 458752, 3, 65533, 458752, 4, -3, 131072, 1, -65539, 131072, 0, 196605, 458752, 3, 196604, 393216, 3, 262140, 0, 2, 65535, 262144, 4, -65535, 262144, 4, 8, 0, 2, 9, 589824, 4, 10, 131072, 2, -65526, 131072, 0, -65527, 655360, 3, -65528, 0, 0, 6, 262144, 0, 65542, 262144, 2, 196621, 851968, 0, 196622, 131072, 0, 262158, 131072, 1, 327694, 131072, 2, 327693, 65536, 2, 262157, 65536, 1, -262130, 1048576, 3, -196594, 262144, 1, -131058, 1048576, 4, -131059, 65536, 4, -131060, 983040, 4, -196596, 262144, 1, -262132, 983040, 3, -262131, 65536, 4, 65550, 983040, 3, 65551, 131072, 4, -65520, 0, 4, -65519, 65536, 4, -65518, 131072, 4, -196592, 262144, 4, 131086, 851968, 4, 131085, 0, 0)
[node name="ParallaxBackground" type="ParallaxBackground" parent="."]
[node name="ParallaxLayer" type="ParallaxLayer" parent="ParallaxBackground"]
motion_mirroring = Vector2(324, 0)
[node name="Sprite2D" type="Sprite2D" parent="ParallaxBackground/ParallaxLayer"]
position = Vector2(91, 50)
scale = Vector2(1.16146, 1)
texture = ExtResource("3_v42n4")
[node name="Sprite2D2" type="Sprite2D" parent="ParallaxBackground/ParallaxLayer"]
position = Vector2(91, -176)
scale = Vector2(13.9375, 11.5)
texture = ExtResource("4_ch8sb")
[node name="Sprite2D3" type="Sprite2D" parent="ParallaxBackground/ParallaxLayer"]
position = Vector2(91, 175)
scale = Vector2(13.9375, 4)
texture = ExtResource("5_01lp1")
[node name="level" type="Node2D" parent="."] [node name="level" type="Node2D" parent="."]
@ -543,7 +573,8 @@ PUSH_FORCE = 550
[node name="Camera2D" type="Camera2D" parent="CharacterBody2D"] [node name="Camera2D" type="Camera2D" parent="CharacterBody2D"]
[node name="AreaTrigger" type="Area2D" parent="."] [node name="AreaTrigger" type="Area2D" parent="."]
position = Vector2(306, -24) position = Vector2(304, -37)
scale = Vector2(0.8, 0.96)
script = ExtResource("2_nfj1w") script = ExtResource("2_nfj1w")
metadata/_edit_group_ = true metadata/_edit_group_ = true
@ -554,7 +585,7 @@ debug_color = Color(0.556863, 0.415686, 0.964706, 0.419608)
[node name="crates" type="Node" parent="."] [node name="crates" type="Node" parent="."]
[node name="crate1" parent="crates" instance=ExtResource("5_u8rgi")] [node name="crate1" parent="crates" instance=ExtResource("5_u8rgi")]
position = Vector2(114, 30) position = Vector2(112, 24)
[node name="crate2" parent="crates" instance=ExtResource("5_u8rgi")] [node name="crate2" parent="crates" instance=ExtResource("5_u8rgi")]
position = Vector2(435, -154) position = Vector2(435, -154)
@ -563,6 +594,8 @@ position = Vector2(435, -154)
position = Vector2(44, -71) position = Vector2(44, -71)
[node name="Platform" parent="." instance=ExtResource("6_t5a05")] [node name="Platform" parent="." instance=ExtResource("6_t5a05")]
position = Vector2(186, -65)
metadata/_edit_group_ = true
[node name="AnimationPlayer" type="AnimationPlayer" parent="Platform"] [node name="AnimationPlayer" type="AnimationPlayer" parent="Platform"]
libraries = { libraries = {
@ -573,5 +606,65 @@ autoplay = "move"
[node name="BoxTrap" type="Node2D" parent="."] [node name="BoxTrap" type="Node2D" parent="."]
position = Vector2(304, -140) position = Vector2(304, -140)
[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_yjg5o")]
position = Vector2(208, -11)
[node name="coin2" parent="coins" instance=ExtResource("10_yjg5o")]
position = Vector2(407, -138)
[node name="coin3" parent="coins" instance=ExtResource("10_yjg5o")]
position = Vector2(459, -139)
[node name="coin4" parent="coins" instance=ExtResource("10_yjg5o")]
position = Vector2(-16, -9)
[node name="coin5" parent="coins" instance=ExtResource("10_yjg5o")]
position = Vector2(-95, -74)
[node name="coin6" parent="coins" instance=ExtResource("10_yjg5o")]
position = Vector2(48, -44)
[node name="coin7" parent="coins" instance=ExtResource("10_yjg5o")]
position = Vector2(264, 83)
[node name="coin8" parent="coins" instance=ExtResource("10_yjg5o")]
position = Vector2(312, 83)
[node name="coin9" parent="coins" instance=ExtResource("10_yjg5o")]
position = Vector2(357, 82)
[node name="coin10" parent="coins" instance=ExtResource("10_yjg5o")]
position = Vector2(306, -42)
[node name="coin11" parent="coins" instance=ExtResource("10_yjg5o")]
position = Vector2(397, 83)
[node name="coin12" parent="coins" instance=ExtResource("10_yjg5o")]
position = Vector2(467, 20)
[node name="coin13" parent="coins" instance=ExtResource("10_yjg5o")]
position = Vector2(494, 20)
[node name="coin14" parent="coins" instance=ExtResource("10_yjg5o")]
position = Vector2(527, -110)
[node name="coin15" parent="coins" instance=ExtResource("10_yjg5o")]
position = Vector2(536, -44)
[node name="coin16" parent="coins" instance=ExtResource("10_yjg5o")]
position = Vector2(560, -44)
[node name="coin17" parent="coins" instance=ExtResource("10_yjg5o")]
position = Vector2(584, -44)
[node name="coin18" parent="coins" instance=ExtResource("10_yjg5o")]
position = Vector2(218, 83)
[node name="badguy" parent="." instance=ExtResource("11_ovphn")]
position = Vector2(179, 84)
[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"] [connection signal="body_entered" from="AreaTrigger" to="AreaTrigger" method="_on_body_entered"]

View File

@ -17,88 +17,93 @@ var faceLeft = false
var pushLeftEnabled = false var pushLeftEnabled = false
var pushRightEnabled = false var pushRightEnabled = false
var pushTarget var pushTarget
var living = true
var bullet = preload("res://scenes/bullet.tscn") var bullet = preload("res://scenes/bullet.tscn")
# Get the gravity from the project settings to be synced with RigidBody nodes. # Get the gravity from the project settings to be synced with RigidBody nodes.
var gravity = ProjectSettings.get_setting("physics/2d/default_gravity") var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
func die():
func _physics_process(delta): print("kill the player")
# Add the gravity. animated_sprite.play("death")
if not is_on_floor(): living = false
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")
# In this example we have replaced the faceLeft code to also have func _physics_process(delta):
# the character's sprite flip depending what direction they are facing if living:
if direction: if not is_on_floor():
faceLeft = true if direction<0 else false velocity.y += gravity * delta
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() # Handle jump.
if right_ray.is_colliding(): if Input.is_action_just_pressed("ui_accept") and is_on_floor():
print("right ray is colliding") velocity.y = JUMP_VELOCITY
var collider = right_ray.get_collider() # Hand force push (melee attack)
#what did we hit? if Input.is_action_just_pressed("push") && pushRightEnabled && faceLeft == false:
if collider is Node: pushTarget.apply_central_impulse(Vector2(1,0) * PUSH_FORCE * 5)
if collider.is_in_group("boxes"): pushRightEnabled = false
print("This is a pushable box") if Input.is_action_just_pressed("push") && pushLeftEnabled:
pushRightEnabled = true pushTarget.apply_central_impulse(Vector2(-1,0) * PUSH_FORCE * 5)
pushTarget = collider pushLeftEnabled = false
else:
pushRightEnabled = 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(): # In this example we have replaced the faceLeft code to also have
print("left ray is colliding") # the character's sprite flip depending what direction they are facing
var collider = left_ray.get_collider() if direction:
if collider is Node: faceLeft = true if direction<0 else false
if collider.is_in_group("boxes"): animated_sprite.flip_h = true if direction < 0 else false
pushLeftEnabled = true velocity.x = direction * SPEED
pushTarget = collider else:
else: velocity.x = move_toward(velocity.x, 0, SPEED)
pushLeftEnabled = false if is_on_floor():
if direction==0:
#loop through the collisions animated_sprite.play("idle")
for i in get_slide_collision_count(): else:
var c = get_slide_collision(i) animated_sprite.play("run")
if c.get_collider() is RigidBody2D: else:
c.get_collider().apply_central_impulse(-c.get_normal()* BUMP_FORCE) 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)

40
scripts/badguy.gd Normal file
View File

@ -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
position.x += direction * speed * delta
func _on_body_entered(body):
print("something hit the bad guy")
if body.is_in_group("player"):
game.playerDeath()

19
scripts/coin.gd Normal file
View File

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

View File

@ -1,7 +1,12 @@
extends Node2D extends Node
var myBox = preload("res://scenes/crate.tscn") 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. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
@ -22,8 +27,16 @@ func _on_area_2d_areatrigger(effect, body):
if body.is_in_group("player"): if body.is_in_group("player"):
for n in 3: for n in 3:
var box = myBox.instantiate() var box = myBox.instantiate()
add_child(box) owner.add_child(box)
box.position = box_trap.position box.position = box_trap.position
"powerup": "powerup":
print("you got power") 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()