From 4412fd21ea2ab038656c07b75c6c5ecf75b3aad8 Mon Sep 17 00:00:00 2001 From: Medenos Date: Sat, 14 Jan 2023 22:51:05 -0500 Subject: [PATCH] basic pew pew without damage or collision --- .godot/editor/create_recent.Node | 8 ++- .godot/editor/editor_layout.cfg | 8 +-- .godot/editor/filesystem_cache7 | 52 ++++++++++-------- .godot/editor/filesystem_update4 | 7 +++ ...state-d267b47f7e81a3258979164d56d0d9c2.cfg | 4 +- .godot/editor/project_metadata.cfg | 8 +-- .godot/editor/recent_dirs | 1 + .godot/editor/script_editor_cache.cfg | 48 +++++++++++++++- ...state-4b15d5b2c95b81f0d5516148b6f1d415.cfg | 4 +- .godot/uid_cache.bin | Bin 592 -> 799 bytes Enemies/basic_enemy.gd | 52 ++++++++++++++++++ Enemies/basic_enemy.tscn | 40 ++++++++++++++ Player/Projectiles/basic_projectile.tscn | 3 - Player/Weapons/basic_weapon.tscn | 5 -- Player/player.gd | 25 +++++++++ Player/player.tscn | 11 ++-- Projectiles/basic_projectile.gd | 20 +++++++ Projectiles/basic_projectile.tscn | 21 +++++++ Sprites/placeholder_enemie.xcf | Bin 0 -> 5053 bytes Sprites/placeholder_enemy.png | Bin 0 -> 6315 bytes Sprites/placeholder_enemy.png.import | 34 ++++++++++++ ...mc_front_64.png => placeholder_player.png} | Bin ...g.import => placeholder_player.png.import} | 6 +- ...jectile.png => placeholder_projectile.png} | Bin ...port => placeholder_projectile.png.import} | 6 +- Sprites/{pew.png => placeholder_weapon.png} | Bin ...g.import => placeholder_weapon.png.import} | 6 +- Weapons/basic_weapon.gd | 24 ++++++++ Weapons/basic_weapon.tscn | 22 ++++++++ project.godot | 15 +++++ test_level001.tscn | 8 ++- 31 files changed, 374 insertions(+), 64 deletions(-) create mode 100644 Enemies/basic_enemy.gd create mode 100644 Enemies/basic_enemy.tscn delete mode 100644 Player/Projectiles/basic_projectile.tscn delete mode 100644 Player/Weapons/basic_weapon.tscn create mode 100644 Projectiles/basic_projectile.gd create mode 100644 Projectiles/basic_projectile.tscn create mode 100644 Sprites/placeholder_enemie.xcf create mode 100644 Sprites/placeholder_enemy.png create mode 100644 Sprites/placeholder_enemy.png.import rename Sprites/{dingo_jam_mc_front_64.png => placeholder_player.png} (100%) rename Sprites/{dingo_jam_mc_front_64.png.import => placeholder_player.png.import} (68%) rename Sprites/{projectile.png => placeholder_projectile.png} (100%) rename Sprites/{projectile.png.import => placeholder_projectile.png.import} (68%) rename Sprites/{pew.png => placeholder_weapon.png} (100%) rename Sprites/{pew.png.import => placeholder_weapon.png.import} (69%) create mode 100644 Weapons/basic_weapon.gd create mode 100644 Weapons/basic_weapon.tscn diff --git a/.godot/editor/create_recent.Node b/.godot/editor/create_recent.Node index cd4ddbb..40a375f 100644 --- a/.godot/editor/create_recent.Node +++ b/.godot/editor/create_recent.Node @@ -1,10 +1,14 @@ +Timer +Area2D StaticBody2D +RigidBody2D +RayCast2D CollisionShape2D +Sprite2D +AnimatedSprite2D CharacterBody2D CollisionPolygon2D -Area2D AudioStreamPlayer AudioStreamPlayer2D AudioListener2D TileMap -AnimatedSprite2D diff --git a/.godot/editor/editor_layout.cfg b/.godot/editor/editor_layout.cfg index 7d87251..f2032a7 100644 --- a/.godot/editor/editor_layout.cfg +++ b/.godot/editor/editor_layout.cfg @@ -7,7 +7,7 @@ dock_filesystem_file_list_display_mode=1 dock_split_2=0 dock_split_3=0 dock_hsplit_1=0 -dock_hsplit_2=309 +dock_hsplit_2=411 dock_hsplit_3=-353 dock_hsplit_4=0 dock_3="Scene,Import" @@ -16,11 +16,11 @@ dock_5="Inspector,Node,History" [EditorNode] -open_scenes=["res://test_level001.tscn", "res://Player/player.tscn"] +open_scenes=["res://test_level001.tscn", "res://Enemies/basic_enemy.tscn", "res://Player/player.tscn", "res://Weapons/basic_weapon.tscn", "res://Projectiles/basic_projectile.tscn"] [ScriptEditor] -open_scripts=["res://Player/player.gd"] -open_help=["CharacterBody2D", "Vector2"] +open_scripts=["res://Enemies/basic_enemy.gd", "res://Projectiles/basic_projectile.gd", "res://Weapons/basic_weapon.gd", "res://Player/player.gd"] +open_help=["Area2D", "CharacterBody2D", "Node2D", "RayCast2D", "RigidBody2D", "StaticBody2D", "Vector2"] script_split_offset=70 list_split_offset=0 diff --git a/.godot/editor/filesystem_cache7 b/.godot/editor/filesystem_cache7 index b5e24ad..f6dde0b 100644 --- a/.godot/editor/filesystem_cache7 +++ b/.godot/editor/filesystem_cache7 @@ -1,25 +1,29 @@ 0b7126e0c6e86d3ec295a72f5aa6e0bd -::res://::1673734830 -README.md::TextFile::-1::1673712834::0::1::::<><>:: -test_level001.tscn::PackedScene::278447013021769396::1673734812::0::1::::<><>::uid://b62h0w8gjm6tj<>uid://d3y4rna66nylu -::res://Levels/::1673726687 -level.tscn::PackedScene::4739050375457527030::1673726687::0::1::::<><>:: -::res://Music/::1673734693 -School_Bass.ogg::AudioStreamOggVorbis::8337090337929631753::1673734497::1673734693::1::::<><>:: -School_BDClave.ogg::AudioStreamOggVorbis::2352609159460477887::1673734497::1673734693::1::::<><>:: -School_Brass.ogg::AudioStreamOggVorbis::8423202159412100063::1673734497::1673734693::1::::<><>:: -School_Flute.ogg::AudioStreamOggVorbis::6100788483817358773::1673734497::1673734693::1::::<><>:: -School_Snare.ogg::AudioStreamOggVorbis::6764331197145035365::1673734497::1673734693::1::::<><>:: -::res://Player/::1673734812 -player.gd::GDScript::-1::1673734812::0::1::::<>CharacterBody2D<>:: -player.tscn::PackedScene::4618483906406103163::1673733616::0::1::::<><>::res://Player/player.gd<>uid://wkeakqjvu3gg -::res://Player/Projectiles/::1673734122 -basic_projectile.tscn::PackedScene::5856608848916302392::1673734122::0::1::::<><>:: -::res://Player/Weapons/::1673734452 -basic_weapon.tscn::PackedScene::5655575360493827386::1673734452::0::1::::<><>:: -::res://Sprites/::1673734432 -dingo_jam_mc_front_64.png::CompressedTexture2D::1565041755936548690::1673732299::1673732300::1::::<><>:: -pew.png::CompressedTexture2D::7577871081029115281::1673734362::1673734427::1::::<><>:: -projectile.png::CompressedTexture2D::13383739614235193::1673734403::1673734432::1::::<><>:: -::res://TileSets/::1673734812 -Tiles Set GameJam.png::CompressedTexture2D::9175886574582270754::1673734812::1673734812::1::::<><>:: +::res://::1673747350 +README.md::TextFile::-1::1673744149::0::1::::<><>:: +test_level001.tscn::PackedScene::278447013021769396::1673747296::0::1::::<><>::uid://xev8p1td1icx<>uid://d3y4rna66nylu<>uid://c661br4lh30r8 +::res://Enemies/::1673747296 +basic_enemy.gd::GDScript::-1::1673746722::0::1::::<>CharacterBody2D<>:: +basic_enemy.tscn::PackedScene::7014272596353446583::1673747296::0::1::::<><>::res://Enemies/basic_enemy.gd<>uid://ds4uvvrcxoay1 +::res://Levels/::1673744149 +level.tscn::PackedScene::4739050375457527030::1673744149::0::1::::<><>:: +::res://Music/::1673744196 +School_Bass.ogg::AudioStreamOggVorbis::8337090337929631753::1673744149::1673744196::1::::<><>:: +School_BDClave.ogg::AudioStreamOggVorbis::2352609159460477887::1673744149::1673744196::1::::<><>:: +School_Brass.ogg::AudioStreamOggVorbis::8423202159412100063::1673744149::1673744196::1::::<><>:: +School_Flute.ogg::AudioStreamOggVorbis::6100788483817358773::1673744149::1673744196::1::::<><>:: +School_Snare.ogg::AudioStreamOggVorbis::6764331197145035365::1673744149::1673744196::1::::<><>:: +::res://Player/::1673747350 +player.gd::GDScript::-1::1673746568::0::1::::<>CharacterBody2D<>:: +player.tscn::PackedScene::1623935731621421531::1673747296::0::1::::<><>::res://Player/player.gd<>uid://wkeakqjvu3gg +::res://Player/Weapons/::1673744149 +basic_weapon.tscn::PackedScene::5655575360493827386::1673744149::0::1::::<><>:: +::res://Projectiles/::1673744149 +basic_projectile.tscn::PackedScene::5856608848916302392::1673744149::0::1::::<><>:: +::res://Sprites/::1673744680 +placeholder_enemy.png::CompressedTexture2D::8483781162333137450::1673744660::1673744680::1::::<><>:: +placeholder_player.png::CompressedTexture2D::1565041755936548690::1673744149::1673744500::1::::<><>:: +placeholder_projectile.png::CompressedTexture2D::13383739614235193::1673744149::1673744515::1::::<><>:: +placeholder_weapon.png::CompressedTexture2D::7577871081029115281::1673744149::1673744508::1::::<><>:: +::res://TileSets/::1673744149 +Tiles Set GameJam.png::CompressedTexture2D::9175886574582270754::1673744149::1673744149::1::::<><>:: diff --git a/.godot/editor/filesystem_update4 b/.godot/editor/filesystem_update4 index 9b7db25..4d26e77 100644 --- a/.godot/editor/filesystem_update4 +++ b/.godot/editor/filesystem_update4 @@ -1,2 +1,9 @@ res://test_level001.tscn res://Player/player.tscn +res://Enemies/basic_enemy.tscn +res://Weapons/basic_weapon.tscn +res://Projectiles/basic_projectile.tscn +res://Enemies/basic_enemy.gd +res://Player/player.gd +res://Weapons/basic_weapon.gd +res://Projectiles/basic_projectile.gd diff --git a/.godot/editor/player.tscn-editstate-d267b47f7e81a3258979164d56d0d9c2.cfg b/.godot/editor/player.tscn-editstate-d267b47f7e81a3258979164d56d0d9c2.cfg index 683625d..6721ade 100644 --- a/.godot/editor/player.tscn-editstate-d267b47f7e81a3258979164d56d0d9c2.cfg +++ b/.godot/editor/player.tscn-editstate-d267b47f7e81a3258979164d56d0d9c2.cfg @@ -8,7 +8,7 @@ Anim={ "grid_snap_active": false, "grid_step": Vector2(8, 8), "grid_visibility": 1, -"ofs": Vector2(-834.444, -392.346), +"ofs": Vector2(-701.364, -383.398), "primary_grid_steps": 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": 0.707107 +"zoom": 1.0 } 3D={ "fov": 70.01, diff --git a/.godot/editor/project_metadata.cfg b/.godot/editor/project_metadata.cfg index 7569532..a9ba87f 100644 --- a/.godot/editor/project_metadata.cfg +++ b/.godot/editor/project_metadata.cfg @@ -1,6 +1,6 @@ [editor_metadata] -executable_path="C:/Godot_v4.0-beta12_mono_win64/Godot_v4.0-beta12_mono_win64/Godot_v4.0-beta12_mono_win64.exe" +executable_path="/home/medenos/Downloads/Godot_v4.0-beta12_mono_linux_x86_64/Godot_v4.0-beta12_mono_linux.x86_64" tile_source_sort=0 use_advanced_connections=false @@ -11,8 +11,8 @@ run_reload_scripts=true [recent_files] -scenes=["res://Player/player.tscn", "res://test_level001.tscn", "res://player.tscn"] -scripts=["Vector2", "CharacterBody2D", "res://player.gd"] +scenes=["res://Projectiles/basic_projectile.tscn", "res://Enemies/basic_enemy.tscn", "res://Weapons/basic_weapon.tscn", "res://Player/player.tscn", "res://test_level001.tscn", "res://Enemies/basic_enemie.tscn", "res://player.tscn"] +scripts=["RayCast2D", "Node2D", "Area2D", "StaticBody2D", "RigidBody2D", "res://Projectiles/basic_projectile.gd", "res://Weapons/basic_weapon.gd", "Vector2", "CharacterBody2D", "res://Enemies/basic_enemy.gd"] [script_setup] @@ -20,7 +20,7 @@ last_selected_language="GDScript" [dialog_bounds] -project_settings=Rect2(510, 238, 900, 700) +project_settings=Rect2(3715, 147, 900, 700) [color_picker] diff --git a/.godot/editor/recent_dirs b/.godot/editor/recent_dirs index 1b075e9..aab7497 100644 --- a/.godot/editor/recent_dirs +++ b/.godot/editor/recent_dirs @@ -1,2 +1,3 @@ +res://Enemies res:// res://Levels diff --git a/.godot/editor/script_editor_cache.cfg b/.godot/editor/script_editor_cache.cfg index 3179c93..b7f09e1 100644 --- a/.godot/editor/script_editor_cache.cfg +++ b/.godot/editor/script_editor_cache.cfg @@ -3,11 +3,53 @@ state={ "bookmarks": PackedInt32Array(), "breakpoints": PackedInt32Array(), -"column": 0, +"column": 8, "folded_lines": [], "h_scroll_position": 0, -"row": 35, -"scroll_position": 13.0, +"row": 26, +"scroll_position": 5.0, +"selection": false, +"syntax_highlighter": "GDScript" +} + +[res://Enemies/basic_enemy.gd] + +state={ +"bookmarks": PackedInt32Array(), +"breakpoints": PackedInt32Array(), +"column": 44, +"folded_lines": [], +"h_scroll_position": 0, +"row": 10, +"scroll_position": 0.0, +"selection": false, +"syntax_highlighter": "GDScript" +} + +[res://Weapons/basic_weapon.gd] + +state={ +"bookmarks": PackedInt32Array(), +"breakpoints": PackedInt32Array(), +"column": 25, +"folded_lines": [], +"h_scroll_position": 0, +"row": 3, +"scroll_position": 0.0, +"selection": false, +"syntax_highlighter": "GDScript" +} + +[res://Projectiles/basic_projectile.gd] + +state={ +"bookmarks": PackedInt32Array(), +"breakpoints": PackedInt32Array(), +"column": 23, +"folded_lines": [], +"h_scroll_position": 0, +"row": 3, +"scroll_position": 0.0, "selection": false, "syntax_highlighter": "GDScript" } diff --git a/.godot/editor/test_level001.tscn-editstate-4b15d5b2c95b81f0d5516148b6f1d415.cfg b/.godot/editor/test_level001.tscn-editstate-4b15d5b2c95b81f0d5516148b6f1d415.cfg index 44bd210..a8d5f26 100644 --- a/.godot/editor/test_level001.tscn-editstate-4b15d5b2c95b81f0d5516148b6f1d415.cfg +++ b/.godot/editor/test_level001.tscn-editstate-4b15d5b2c95b81f0d5516148b6f1d415.cfg @@ -8,7 +8,7 @@ Anim={ "grid_snap_active": false, "grid_step": Vector2(8, 8), "grid_visibility": 1, -"ofs": Vector2(-497.438, -331.178), +"ofs": Vector2(-835.537, -590.651), "primary_grid_steps": 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": 0.374577 +"zoom": 0.629961 } 3D={ "fov": 70.01, diff --git a/.godot/uid_cache.bin b/.godot/uid_cache.bin index f819e844e9af419ae20ddb16de8c054ccaf8af73..e272c0865b9ffd73e1f9d4920036154aba58829a 100644 GIT binary patch delta 346 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 literal 0 HcmV?d00001 diff --git a/Sprites/placeholder_enemy.png b/Sprites/placeholder_enemy.png new file mode 100644 index 0000000000000000000000000000000000000000..cb73f079734193a4ebb2c72345f5bb6c2638eead GIT binary patch literal 6315 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