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 zcmcb>GM`OPh=GA&dr^A);mzTRatsU%MXAMB`ueVUskxb{#rjE!#hJ?hsXHU|=XpEw<9v4=yOm zEJ-caPsz+n&yUYa%#F`Yj!!Gf&nt;HGtn!^OP?rP6f~1jD^nChOF?QmNP#6+<<^28 beFhm!1x5K;smUdoIjJCZO5F~V3zz}{La{RO diff --git a/Enemies/basic_enemy.gd b/Enemies/basic_enemy.gd new file mode 100644 index 0000000..0e4e7fe --- /dev/null +++ b/Enemies/basic_enemy.gd @@ -0,0 +1,52 @@ +extends CharacterBody2D + +@export var MAX_SPEED = 300.0; +@export var ACCELERATION = 1000.0; +@export var FRICTION = 1500.0; +@export var HP = 1; +@export var DAMAGE = 1; +@export var COOLDOWN = 1; + +@onready var raycast = $RayCast2D; +@onready var cooldown_timer = $CooldownTimer; + +var player = null; +var is_on_cooldown = false; + +func _ready(): + add_to_group("enemies"); + +func _physics_process(delta): + if player == null: + return + + var vec_to_player = player.global_position - global_position; + vec_to_player = vec_to_player.normalized(); + raycast.rotation = atan2(vec_to_player.y,vec_to_player.x); + velocity = velocity.move_toward(vec_to_player * MAX_SPEED,ACCELERATION*delta); + move_and_slide(); + + if raycast.is_colliding(): + var coll = raycast.get_collider(); + if coll.name == "Player": + attack(coll); + +func attack(collider): + if !is_on_cooldown: + is_on_cooldown = true; + cooldown_timer.start(COOLDOWN); + collider.take_damage(DAMAGE); + +func take_damage(damage): + HP = HP - damage; + if HP <= 0: + kill(); + +func kill(): + queue_free(); + +func set_player(p): + player = p; + +func _on_cooldown_timer_timeout(): + is_on_cooldown = false; diff --git a/Enemies/basic_enemy.tscn b/Enemies/basic_enemy.tscn new file mode 100644 index 0000000..3b52baa --- /dev/null +++ b/Enemies/basic_enemy.tscn @@ -0,0 +1,40 @@ +[gd_scene load_steps=5 format=3 uid="uid://c661br4lh30r8"] + +[ext_resource type="Script" path="res://Enemies/basic_enemy.gd" id="1_5vi5k"] +[ext_resource type="Texture2D" uid="uid://ds4uvvrcxoay1" path="res://Sprites/placeholder_enemy.png" id="1_o8nfm"] + +[sub_resource type="SpriteFrames" id="SpriteFrames_efc6w"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_o8nfm") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_47nt3"] +size = Vector2(41, 64) + +[node name="BasicEnemy" type="CharacterBody2D"] +script = ExtResource("1_5vi5k") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +frames = SubResource("SpriteFrames_efc6w") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(0.5, 0) +shape = SubResource("RectangleShape2D_47nt3") + +[node name="RayCast2D" type="RayCast2D" parent="."] +target_position = Vector2(35, 0) + +[node name="Line2D" type="Line2D" parent="RayCast2D"] +points = PackedVector2Array(0, 0, 35, 0) +width = 5.0 +default_color = Color(1, 0, 0, 0.392157) + +[node name="CooldownTimer" type="Timer" parent="."] + +[connection signal="timeout" from="CooldownTimer" to="." method="_on_cooldown_timer_timeout"] diff --git a/Player/Projectiles/basic_projectile.tscn b/Player/Projectiles/basic_projectile.tscn deleted file mode 100644 index 284067f..0000000 --- a/Player/Projectiles/basic_projectile.tscn +++ /dev/null @@ -1,3 +0,0 @@ -[gd_scene format=3 uid="uid://cpo8qy3y0fuui"] - -[node name="basic_projectile" type="Node2D"] diff --git a/Player/Weapons/basic_weapon.tscn b/Player/Weapons/basic_weapon.tscn deleted file mode 100644 index 2f99b85..0000000 --- a/Player/Weapons/basic_weapon.tscn +++ /dev/null @@ -1,5 +0,0 @@ -[gd_scene format=3 uid="uid://cmtuq84761y0i"] - -[node name="basic_weapon" type="Node2D"] - -[node name="Sprite2D" type="Sprite2D" parent="."] diff --git a/Player/player.gd b/Player/player.gd index abe6a84..60caafb 100644 --- a/Player/player.gd +++ b/Player/player.gd @@ -3,8 +3,16 @@ extends CharacterBody2D @export var MAX_SPEED = 600.0; @export var ACCELERATION = 2000.0; @export var FRICTION = 3000.0; +@export var HP = 3; +@export var STARTING_WEAPON : PackedScene; @onready var raycast = $RayCast2D; +var current_weapon = null; + +func _ready(): + call_deferred("call_set_player"); + current_weapon = STARTING_WEAPON.instantiate(); + raycast.add_child(current_weapon); func _physics_process(delta): var input_vector = get_input_vector(); @@ -14,6 +22,21 @@ func _physics_process(delta): var look_vec = get_global_mouse_position() - global_position; raycast.rotation = atan2(look_vec.y,look_vec.x); + + if Input.is_action_pressed("shoot"): + attack(); + + +func attack(): + if current_weapon: current_weapon.fire(); + +func take_damage(damage): + HP = HP - damage; + if HP <= 0: + kill(); + +func kill(): + get_tree().reload_current_scene(); func get_input_vector(): var input_vector = Vector2.ZERO; @@ -30,6 +53,8 @@ func apply_friction(input_vector,delta): if(input_vector == Vector2.ZERO): velocity = velocity.move_toward(Vector2.ZERO, FRICTION * delta); +func call_set_player(): + get_tree().call_group("enemies", "set_player",self); func _on_area_2d_area_entered(area): $"../School_Snare".volume_db(-6); diff --git a/Player/player.tscn b/Player/player.tscn index 97274bc..213a5fd 100644 --- a/Player/player.tscn +++ b/Player/player.tscn @@ -1,13 +1,14 @@ -[gd_scene load_steps=5 format=3 uid="uid://b62h0w8gjm6tj"] +[gd_scene load_steps=6 format=3 uid="uid://xev8p1td1icx"] [ext_resource type="Script" path="res://Player/player.gd" id="1_mbyc2"] -[ext_resource type="Texture2D" uid="uid://wkeakqjvu3gg" path="res://Sprites/dingo_jam_mc_front_64.png" id="2_ae25p"] +[ext_resource type="PackedScene" uid="uid://cmtuq84761y0i" path="res://Weapons/basic_weapon.tscn" id="2_bo475"] +[ext_resource type="Texture2D" uid="uid://wkeakqjvu3gg" path="res://Sprites/placeholder_player.png" id="2_bqbmq"] [sub_resource type="SpriteFrames" id="SpriteFrames_mqbrd"] animations = [{ "frames": [{ "duration": 1.0, -"texture": ExtResource("2_ae25p") +"texture": ExtResource("2_bqbmq") }], "loop": true, "name": &"default", @@ -15,10 +16,11 @@ animations = [{ }] [sub_resource type="RectangleShape2D" id="RectangleShape2D_ng5bv"] -size = Vector2(64, 64) +size = Vector2(40, 64) [node name="Player" type="CharacterBody2D"] script = ExtResource("1_mbyc2") +STARTING_WEAPON = ExtResource("2_bo475") [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] frames = SubResource("SpriteFrames_mqbrd") @@ -33,6 +35,7 @@ current = true target_position = Vector2(2000, 0) [node name="Line2D" type="Line2D" parent="RayCast2D"] +visible = false points = PackedVector2Array(0, 0, 2000, 0) width = 5.0 default_color = Color(1, 0, 0, 0.392157) diff --git a/Projectiles/basic_projectile.gd b/Projectiles/basic_projectile.gd new file mode 100644 index 0000000..931385b --- /dev/null +++ b/Projectiles/basic_projectile.gd @@ -0,0 +1,20 @@ +extends Area2D + +@export var DAMAGE = 1; +@export var SPEED = 800; +@export var LIFETIME = 3; + +@onready var life_timer = $LifeTimer; + +var velocity = Vector2.ZERO; + +func _process(delta): + if velocity != Vector2.ZERO: + transform.origin += velocity * delta; + +func launch(direction): + life_timer.start(LIFETIME); + velocity = direction * SPEED; + +func _on_life_timer_timeout(): + queue_free(); diff --git a/Projectiles/basic_projectile.tscn b/Projectiles/basic_projectile.tscn new file mode 100644 index 0000000..dbf5e25 --- /dev/null +++ b/Projectiles/basic_projectile.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=4 format=3 uid="uid://cpo8qy3y0fuui"] + +[ext_resource type="Script" path="res://Projectiles/basic_projectile.gd" id="1_l2kyf"] +[ext_resource type="Texture2D" uid="uid://gqotbni355f" path="res://Sprites/placeholder_projectile.png" id="1_o7jy1"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_pp7ve"] +size = Vector2(10, 10) + +[node name="basic_projectile" type="Area2D"] +script = ExtResource("1_l2kyf") + +[node name="Sprite2D" type="Sprite2D" parent="."] +scale = Vector2(5, 5) +texture = ExtResource("1_o7jy1") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_pp7ve") + +[node name="LifeTimer" type="Timer" parent="."] + +[connection signal="timeout" from="LifeTimer" to="." method="_on_life_timer_timeout"] diff --git a/Sprites/placeholder_enemie.xcf b/Sprites/placeholder_enemie.xcf new file mode 100644 index 0000000000000000000000000000000000000000..f2e8914264539a10c0bf184d4cfe96a17754c45a GIT binary patch literal 5053 zcmYe#%q>u;NKR8IGcYt{U|?WyfMO7P8Uq7^AOiyfBO?O?gD?XF1BcTD1_lsjU|??9}6v|SIiZk=`Y}F0*4Ad1;^OEyZGV{`H z)k8zvbS>2F?YL}U8tu3g6l_Wo(-ra(b5m`VTq`ou^gKZUspphgQXG(46r7k_kdvxp zXQ5!BU}2+Ql9-NL3s|F1YF>IthLW9`2{Ed}GgF9C>|d0bnpcuol9`{UWM@dgmw6)l@S=yM|#s9NI9mvwotqrnU{69C?3?^+xEjDdNkj2bk-|+rtY5U*K z+QuBmti`O&ti>G1)b_ufxlQ>0|9?#Xx!eB7GeKn-6UTI}s$?}B91|ARu1z5PGP5Apxv;voW% zNCXLj^|So{|4$LBl39y6UK`A2)@F_a$$(OqJX}QQ|KETAp*&DPgKSoY+03jBb^_b~ z|No@_Lt>7-4PqIaHj9=xRP1j%DBUu(|8HY%X9Wc?vzFlh|NmJ2Gi$MEGigDhn!TM} zn^_BFJokS_P{4o!o4pMr{09`9%KsVTf5pXvVwgQ16l?PTnd6z_IO6sHgFVF@#~!Z_ z7Wx+-#}*Iri6+#Y@$7M+Jfs2gMm%HO-}tzAra1loAn!27gVIbqYn(n@G; z{(p|PpWuwu*3JzM=>PvXz*&^JT??GYnA_O@Gq>r3@*oyk8Eg}CJ4g*E`Ahu=vB3#c z|35fcfn=1R>4p9O|8^#jS=!9ttir4<_y7Mt{{R2An6%mdGlBve;uU6X_Ww*;|Dn<# z9<#Rie^8MFi5E~Q!q~>#t`06m7~B50gJKfIV+ZAK);4Bv3BmoJ8RR=~0m0G63@&uQ zy11V*=@blre}xin$#W2NED(w}XAd-VVuE?f?IQLRa`dOB+atqa9MX zNdE_!&)CM&&ZNzu1Wcx;mq-%1PsblAobufNSm2~N$WSLfCQ-p zl_y%vZQ{_vN1K`9zc!l|vo{{St0`eC`2+W16WrivQ zrznuS;}}8F3rgBz|3UhHgQ|-*rgliCjpzT*2r3ifnYEePSlS`(hzBK3rT@(FV531v z4OBg8F@tldG^8j11y>t$JJ|Q}?EnA&3Z%~5oRrra%OFiGll=dc>4dDwb;RBAh?KYXK&*M*SsK)bAig! zHc+9*-mU_2(SN3P_BNLG|7~pTprj=F|KC5b5^j+9Wg(?%JG96ErF`}_P_@k7#?=mT z8B3e&f5v~HA_-FdfQ(^p0|f`ie`b(!);8{T_BK!!1f@k#@@Cii1IjX>mIZSgH>kPQ z)~2P+sReF^feH$cLKdz6+N@fTmK{V4WE-c}Uu~^6CP;||DZoGtLQq}+HJYF~3#1;R zlR56c78|5Qi32sjKnV?0Y_Ye4vks`nWd=)tVnhgBHZ#Y88b2(cj1dPa)c?1MgIXcl ze;61U7`Q>gjLh1g$ORVzpfU&CB4pMADF91>5+)N^4>JQdv?O8#A)@x571X+6j{6B}E&l)iPv<{-JWCu? zy#D|HacuFBppMrBJCr$|6I2+1yesmbCH`+*d_1Um1S-fNV$AVeasT5X?I70p|KI`# z6#jDmIU$xnay480e{ksoG8L4}xZ^=#3MnF(!ObU7;}?`cnA$nO5eQ1ypq2@9JA0ch zI6HzGj-cLxKDaah1txR5KD2xQ6)yk(seuyje{h-v7gBAYMpiqh9MJ~l=Kr9k3aAMO zR>A%s(iQ_rgS0cZg9>eMItS->aJYh8#SSVU{t1AK5>TN7idmii%-Ud$|3OIy)R2{d zG_*hpK*cMh6oE9c{{IvEFU%nRUmXc6Gsyp!N5aw!>i@+_z|u&1LFOnUnGLc>n}Pqo eJ`z?&Gg}!+4p|-XZ07&$49x%a8E8X`GXMZ)DJLiZ 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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 P8b0!L^>bP0l+XkKpAYBu literal 0 HcmV?d00001 diff --git a/Sprites/placeholder_enemy.png.import b/Sprites/placeholder_enemy.png.import new file mode 100644 index 0000000..4ac7706 --- /dev/null +++ b/Sprites/placeholder_enemy.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ds4uvvrcxoay1" +path="res://.godot/imported/placeholder_enemy.png-d631bd7922b121775dedcf976041c79a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Sprites/placeholder_enemy.png" +dest_files=["res://.godot/imported/placeholder_enemy.png-d631bd7922b121775dedcf976041c79a.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +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/Sprites/dingo_jam_mc_front_64.png b/Sprites/placeholder_player.png similarity index 100% rename from Sprites/dingo_jam_mc_front_64.png rename to Sprites/placeholder_player.png diff --git a/Sprites/dingo_jam_mc_front_64.png.import b/Sprites/placeholder_player.png.import similarity index 68% rename from Sprites/dingo_jam_mc_front_64.png.import rename to Sprites/placeholder_player.png.import index ca0c5fa..ec1b8b6 100644 --- a/Sprites/dingo_jam_mc_front_64.png.import +++ b/Sprites/placeholder_player.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://wkeakqjvu3gg" -path="res://.godot/imported/dingo_jam_mc_front_64.png-601093cfabf1ebe5f72150684b2fcd7e.ctex" +path="res://.godot/imported/placeholder_player.png-64f3e50b58f57e0a665d775e13e1f7dc.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://Sprites/dingo_jam_mc_front_64.png" -dest_files=["res://.godot/imported/dingo_jam_mc_front_64.png-601093cfabf1ebe5f72150684b2fcd7e.ctex"] +source_file="res://Sprites/placeholder_player.png" +dest_files=["res://.godot/imported/placeholder_player.png-64f3e50b58f57e0a665d775e13e1f7dc.ctex"] [params] diff --git a/Sprites/projectile.png b/Sprites/placeholder_projectile.png similarity index 100% rename from Sprites/projectile.png rename to Sprites/placeholder_projectile.png diff --git a/Sprites/projectile.png.import b/Sprites/placeholder_projectile.png.import similarity index 68% rename from Sprites/projectile.png.import rename to Sprites/placeholder_projectile.png.import index 1319534..05a7581 100644 --- a/Sprites/projectile.png.import +++ b/Sprites/placeholder_projectile.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://gqotbni355f" -path="res://.godot/imported/projectile.png-eff5302beb46bc9a9106ccfb67813440.ctex" +path="res://.godot/imported/placeholder_projectile.png-b7f99271bb5a0233cb6b30e50461f459.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://Sprites/projectile.png" -dest_files=["res://.godot/imported/projectile.png-eff5302beb46bc9a9106ccfb67813440.ctex"] +source_file="res://Sprites/placeholder_projectile.png" +dest_files=["res://.godot/imported/placeholder_projectile.png-b7f99271bb5a0233cb6b30e50461f459.ctex"] [params] diff --git a/Sprites/pew.png b/Sprites/placeholder_weapon.png similarity index 100% rename from Sprites/pew.png rename to Sprites/placeholder_weapon.png diff --git a/Sprites/pew.png.import b/Sprites/placeholder_weapon.png.import similarity index 69% rename from Sprites/pew.png.import rename to Sprites/placeholder_weapon.png.import index a05e57a..a3b7713 100644 --- a/Sprites/pew.png.import +++ b/Sprites/placeholder_weapon.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://df71outtqfcu0" -path="res://.godot/imported/pew.png-3aab10d741cd8f2cd98a8407fc89f0cc.ctex" +path="res://.godot/imported/placeholder_weapon.png-154a5d8679016d3a845bf640635bfcb2.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://Sprites/pew.png" -dest_files=["res://.godot/imported/pew.png-3aab10d741cd8f2cd98a8407fc89f0cc.ctex"] +source_file="res://Sprites/placeholder_weapon.png" +dest_files=["res://.godot/imported/placeholder_weapon.png-154a5d8679016d3a845bf640635bfcb2.ctex"] [params] diff --git a/Weapons/basic_weapon.gd b/Weapons/basic_weapon.gd new file mode 100644 index 0000000..25dd4ab --- /dev/null +++ b/Weapons/basic_weapon.gd @@ -0,0 +1,24 @@ +extends Node2D + +@export var PROJECTILE : PackedScene; +@export var COOLDOWN = .5; +@export var SPREAD = 10; + +@onready var raycast = $RayCast2D; +@onready var cooldown_timer = $CooldownTimer; + +var is_on_cooldown = false; + +func fire(): + if !is_on_cooldown: + is_on_cooldown = true; + cooldown_timer.start(COOLDOWN); + var current_projectile : Area2D = PROJECTILE.instantiate(); + get_node("/root").add_child(current_projectile); + + current_projectile.transform = raycast.get_global_transform() + current_projectile.launch((get_global_mouse_position() - global_position).normalized()); + + +func _on_cooldown_timer_timeout(): + is_on_cooldown = false; diff --git a/Weapons/basic_weapon.tscn b/Weapons/basic_weapon.tscn new file mode 100644 index 0000000..5086cb1 --- /dev/null +++ b/Weapons/basic_weapon.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=4 format=3 uid="uid://cmtuq84761y0i"] + +[ext_resource type="Script" path="res://Weapons/basic_weapon.gd" id="1_cser3"] +[ext_resource type="Texture2D" uid="uid://df71outtqfcu0" path="res://Sprites/placeholder_weapon.png" id="1_k30lm"] +[ext_resource type="PackedScene" uid="uid://cpo8qy3y0fuui" path="res://Projectiles/basic_projectile.tscn" id="2_fbg12"] + +[node name="basic_weapon" type="Node2D"] +script = ExtResource("1_cser3") +PROJECTILE = ExtResource("2_fbg12") + +[node name="Sprite2D" type="Sprite2D" parent="."] +position = Vector2(20, 0) +scale = Vector2(2, 2) +texture = ExtResource("1_k30lm") + +[node name="RayCast2D" type="RayCast2D" parent="."] +position = Vector2(44, 0) +target_position = Vector2(50, 0) + +[node name="CooldownTimer" type="Timer" parent="."] + +[connection signal="timeout" from="CooldownTimer" to="." method="_on_cooldown_timer_timeout"] diff --git a/project.godot b/project.godot index 7b705df..56889de 100644 --- a/project.godot +++ b/project.godot @@ -54,6 +54,21 @@ shoot={ "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null) ] } +weapon_01={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":49,"unicode":0,"echo":false,"script":null) +] +} +weapon_02={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":50,"unicode":0,"echo":false,"script":null) +] +} +weapon_03={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":51,"unicode":0,"echo":false,"script":null) +] +} [rendering] diff --git a/test_level001.tscn b/test_level001.tscn index 4003b24..d38183a 100644 --- a/test_level001.tscn +++ b/test_level001.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=5 format=3 uid="uid://d748m0x7o1nc"] +[gd_scene load_steps=6 format=3 uid="uid://d748m0x7o1nc"] -[ext_resource type="PackedScene" uid="uid://b62h0w8gjm6tj" path="res://Player/player.tscn" id="1_51g8b"] +[ext_resource type="PackedScene" uid="uid://xev8p1td1icx" path="res://Player/player.tscn" id="1_51g8b"] [ext_resource type="Texture2D" uid="uid://d3y4rna66nylu" path="res://TileSets/Tiles Set GameJam.png" id="2_xwre6"] +[ext_resource type="PackedScene" uid="uid://c661br4lh30r8" path="res://Enemies/basic_enemy.tscn" id="3_e1d3p"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_aemot"] resource_name = "Test" @@ -136,3 +137,6 @@ position = Vector2(67.9902, 68.8737) [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="StaticBody2D"] polygon = PackedVector2Array(409, 497, 687, 497, 687, 367, 1681, 367, 1683, 639, 1967, 643, 1963, 85, 415, 85) + +[node name="BasicEnemy" parent="." instance=ExtResource("3_e1d3p")] +position = Vector2(846, 494)