From b718c0f31b6d2162522da69521cf100f2c62ddfe Mon Sep 17 00:00:00 2001 From: Martin Araneda Date: Sun, 28 Aug 2022 15:02:28 -0400 Subject: [PATCH 01/14] no changes --- godot/Main.tscn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/godot/Main.tscn b/godot/Main.tscn index 5babece..e3fc9ab 100644 --- a/godot/Main.tscn +++ b/godot/Main.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=4 format=2] [ext_resource path="res://Main.gdns" type="Script" id=1] -[ext_resource path="res://levels/Prototype.tscn" type="PackedScene" id=2] +[ext_resource path="res://levels/PrototypeEnemies.tscn" type="PackedScene" id=2] [ext_resource path="res://GUI/GameOver.tscn" type="PackedScene" id=3] [node name="Main" type="Node"] From 7e57e782051045c435835d3cfa9f7da24e9b57e7 Mon Sep 17 00:00:00 2001 From: Martin Araneda Date: Sun, 28 Aug 2022 15:04:50 -0400 Subject: [PATCH 02/14] Revert "no changes" This reverts commit b718c0f31b6d2162522da69521cf100f2c62ddfe. --- godot/Main.tscn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/godot/Main.tscn b/godot/Main.tscn index e3fc9ab..5babece 100644 --- a/godot/Main.tscn +++ b/godot/Main.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=4 format=2] [ext_resource path="res://Main.gdns" type="Script" id=1] -[ext_resource path="res://levels/PrototypeEnemies.tscn" type="PackedScene" id=2] +[ext_resource path="res://levels/Prototype.tscn" type="PackedScene" id=2] [ext_resource path="res://GUI/GameOver.tscn" type="PackedScene" id=3] [node name="Main" type="Node"] From 0e4bad4823dd71b9e3d3f701358554a8322f6369 Mon Sep 17 00:00:00 2001 From: Martin Araneda Date: Sun, 28 Aug 2022 20:15:40 -0400 Subject: [PATCH 03/14] R prototype lvl made. Coins and coinHUD added --- godot/Main.tscn | 2 +- godot/levels/Prototype.tscn | 1 - godot/levels/PrototypeR.tmx | 19 ++++++++ godot/levels/PrototypeR.tmx.import | 24 ++++++++++ godot/levels/PrototypeR.tscn | 72 ++++++++++++++++++++++++++++ src/gui/game_over/GameOverScreen.cpp | 5 +- 6 files changed, 119 insertions(+), 4 deletions(-) create mode 100644 godot/levels/PrototypeR.tmx create mode 100644 godot/levels/PrototypeR.tmx.import create mode 100644 godot/levels/PrototypeR.tscn diff --git a/godot/Main.tscn b/godot/Main.tscn index 5babece..d63b2cb 100644 --- a/godot/Main.tscn +++ b/godot/Main.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=4 format=2] [ext_resource path="res://Main.gdns" type="Script" id=1] -[ext_resource path="res://levels/Prototype.tscn" type="PackedScene" id=2] +[ext_resource path="res://levels/PrototypeR.tscn" type="PackedScene" id=2] [ext_resource path="res://GUI/GameOver.tscn" type="PackedScene" id=3] [node name="Main" type="Node"] diff --git a/godot/levels/Prototype.tscn b/godot/levels/Prototype.tscn index b71e0c7..320b814 100644 --- a/godot/levels/Prototype.tscn +++ b/godot/levels/Prototype.tscn @@ -14,7 +14,6 @@ collision_layer = 5 [node name="Camera2D" type="Camera2D" parent="Player"] -current = true limit_left = 0 limit_top = 0 limit_right = 512 diff --git a/godot/levels/PrototypeR.tmx b/godot/levels/PrototypeR.tmx new file mode 100644 index 0000000..57d9e74 --- /dev/null +++ b/godot/levels/PrototypeR.tmx @@ -0,0 +1,19 @@ + + + + + + KLUv/WAAO9UGAOQDABIAAAATFAAnEiYoEjo8YgAAADs6dQA6iwAAAIwAOnUAihIoADd/YwAAAGQAAAB4AAAAdiY3ADqLYwAAgAA8oBCVNdsBwAKTQCJcY8XxUYoarT8gQjyeu5O6nkqpOlT1gMJhyWO43xyk5jp+D3SGOxcoT52U4vScQx63fcb98i+k3jK5QUu8pNUR8O+i4l7VPW51R5d4k1T3FuabG4vErcrOI+U6fRflI6vfRsa41pUIv1HPe0OudqI1qDNHH2bcTSH3r27pd6Tac6lM+3bwXaj+q2cxvogB + + + + + KLUv/WAAOz0FAIQCADEAAAAyMwACAAAAAwQAAhYAAAAXGAB6AAAAe3wAF4ZfAHuIAIZeiCygMLF1UIIUiARiZAelj/9XjXZV/ipp0q1TfoI4FDJcav6xkgcm3cqld/XLYVzNgPGrRkX6pwiG831dQsKVhvGrM0E5nOTUdZpyl96SqGcYDzh1mVBuKT0+fmorpXmjgBlElduJp59uitTebrC/onYW//xER7myT2JL+hkD + + + + + KLUv/WAAO70CAKgAdAB0AIiINzeIN0YjWjcjNyNuNwAaoJD2AWBDhVoO4YKf+iiKEtrHJVQSqc4GzhDlVlFe0Tb1bDJ629TRhBsftwpQtCpKtEu19HH9uSSqrEzywUAhHQ== + + + diff --git a/godot/levels/PrototypeR.tmx.import b/godot/levels/PrototypeR.tmx.import new file mode 100644 index 0000000..17122e4 --- /dev/null +++ b/godot/levels/PrototypeR.tmx.import @@ -0,0 +1,24 @@ +[remap] + +importer="vnen.tiled_importer" +type="PackedScene" +path="res://.import/PrototypeR.tmx-dfb7d18f520c5c44182a13443fe1b69c.scn" + +[deps] + +source_file="res://levels/PrototypeR.tmx" +dest_files=[ "res://.import/PrototypeR.tmx-dfb7d18f520c5c44182a13443fe1b69c.scn" ] + +[params] + +custom_properties=true +tile_metadata=false +uv_clip=true +y_sort=false +image_flags=0 +collision_layer=2 +collision_mask=0 +embed_internal_images=false +save_tiled_properties=false +add_background=true +post_import_script="" diff --git a/godot/levels/PrototypeR.tscn b/godot/levels/PrototypeR.tscn new file mode 100644 index 0000000..299779a --- /dev/null +++ b/godot/levels/PrototypeR.tscn @@ -0,0 +1,72 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://CameraLimit.gdns" type="Script" id=1] +[ext_resource path="res://characters/player/Player.tscn" type="PackedScene" id=2] +[ext_resource path="res://levels/PrototypeR.tmx" type="PackedScene" id=3] +[ext_resource path="res://assets/backgrounds/hills.png" type="Texture" id=4] +[ext_resource path="res://hud/CoinHUD.tscn" type="PackedScene" id=5] +[ext_resource path="res://collectables/coin/Coin.tscn" type="PackedScene" id=6] + +[node name="Prototype" type="Node2D"] + +[node name="Player" parent="." instance=ExtResource( 2 )] +collision_layer = 5 + +[node name="Camera2D" type="Camera2D" parent="Player"] +current = true +limit_left = 0 +limit_top = 0 +limit_right = 512 +limit_bottom = 288 +drag_margin_h_enabled = true +drag_margin_v_enabled = true +__meta__ = { +"_edit_bone_": true +} + +[node name="VisibilityNotifier2D" type="VisibilityNotifier2D" parent="Player/Camera2D"] +rect = Rect2( 0, 0, 24, 24 ) + +[node name="ParallaxBackground" type="ParallaxBackground" parent="."] + +[node name="ParallaxLayer" type="ParallaxLayer" parent="ParallaxBackground"] +motion_scale = Vector2( 0.2, 0.1 ) +motion_offset = Vector2( 0, -288 ) +motion_mirroring = Vector2( 528, 0 ) + +[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer"] +texture = ExtResource( 4 ) +centered = false + +[node name="Map" type="Node2D" parent="."] + +[node name="PrototypeR" parent="Map" instance=ExtResource( 3 )] +script = ExtResource( 1 ) + +[node name="CoinHUD" parent="." instance=ExtResource( 5 )] + +[node name="Coins" type="Node" parent="."] + +[node name="Coin" parent="Coins" instance=ExtResource( 6 )] +position = Vector2( 270, 432 ) + +[node name="Coin2" parent="Coins" instance=ExtResource( 6 )] +position = Vector2( 846, 252 ) + +[node name="Coin3" parent="Coins" instance=ExtResource( 6 )] +position = Vector2( 1278, 342 ) + +[node name="Coin4" parent="Coins" instance=ExtResource( 6 )] +position = Vector2( 1278, 180 ) + +[node name="Coin5" parent="Coins" instance=ExtResource( 6 )] +position = Vector2( 522, 270 ) + +[node name="Coin6" parent="Coins" instance=ExtResource( 6 )] +position = Vector2( 990, 324 ) + +[node name="Coin7" parent="Coins" instance=ExtResource( 6 )] +position = Vector2( 468, 306 ) + +[node name="Coin8" parent="Coins" instance=ExtResource( 6 )] +position = Vector2( 576, 306 ) diff --git a/src/gui/game_over/GameOverScreen.cpp b/src/gui/game_over/GameOverScreen.cpp index fc35153..ca87875 100644 --- a/src/gui/game_over/GameOverScreen.cpp +++ b/src/gui/game_over/GameOverScreen.cpp @@ -36,9 +36,10 @@ void alai::GameOverScreen::_ready() void alai::GameOverScreen::_on_restart_button_pressed() { - if (_resource_loader->exists("res://levels/Prototype.tscn")) + /*_r*/ + if (_resource_loader->exists("res://levels/PrototypeR.tscn")) { - godot::Ref level_scene = _resource_loader->load("res://levels/Prototype.tscn"); + godot::Ref level_scene = _resource_loader->load("res://levels/PrototypeR.tscn"); auto level = level_scene->instance(); auto level_node = get_tree()->get_root()->get_node("Main")->find_node("Level"); From 7236428157b0556bf12c4c0d80c846c5b9fb6c54 Mon Sep 17 00:00:00 2001 From: Martin Araneda Date: Thu, 1 Sep 2022 15:55:02 -0400 Subject: [PATCH 04/14] coin and bgm added, game over music still not done --- godot/GUI/GameOver.tscn | 8 +++++++- godot/assets/music/Magic Fx 7.ogg | 3 +++ godot/assets/music/Magic Fx 7.ogg.import | 15 +++++++++++++++ godot/characters/player/Player.tscn | 2 +- godot/collectables/coin/Coin.tscn | 7 ++++++- godot/levels/Prototype.tscn | 11 ++++++++++- src/coin/CoinCollected.cpp | 4 +++- src/gui/game_over/GameOverScreen.cpp | 22 ++++++++++++++++++++++ src/gui/game_over/GameOverScreen.h | 2 ++ 9 files changed, 69 insertions(+), 5 deletions(-) create mode 100644 godot/assets/music/Magic Fx 7.ogg create mode 100644 godot/assets/music/Magic Fx 7.ogg.import diff --git a/godot/GUI/GameOver.tscn b/godot/GUI/GameOver.tscn index ba0990d..fde9238 100644 --- a/godot/GUI/GameOver.tscn +++ b/godot/GUI/GameOver.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=8 format=2] [ext_resource path="res://assets/fonts/ttf/PixelOperator8.ttf" type="DynamicFontData" id=1] [ext_resource path="res://assets/fonts/ttf/PixelOperatorHB8.ttf" type="DynamicFontData" id=2] [ext_resource path="res://GUI/botonreiniciar.gdns" type="Script" id=3] +[ext_resource path="res://assets/sounds/died.wav" type="AudioStream" id=4] [sub_resource type="DynamicFont" id=1] size = 50 @@ -45,4 +46,9 @@ custom_fonts/font = SubResource( 2 ) custom_styles/hover = SubResource( 3 ) text = "REINICIAR" +[node name="GameOverMusic" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 4 ) +volume_db = -23.524 + +[connection signal="visibility_changed" from="." to="." method="_play_music"] [connection signal="pressed" from="Control/RestartButton" to="." method="_on_restart_button_pressed"] diff --git a/godot/assets/music/Magic Fx 7.ogg b/godot/assets/music/Magic Fx 7.ogg new file mode 100644 index 0000000..a9c0020 --- /dev/null +++ b/godot/assets/music/Magic Fx 7.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:212b33aef7ed3befca6912a1fcd86e7166a9bbbe55a3422a7d10bbf1afbf5020 +size 2189889 diff --git a/godot/assets/music/Magic Fx 7.ogg.import b/godot/assets/music/Magic Fx 7.ogg.import new file mode 100644 index 0000000..d27d30e --- /dev/null +++ b/godot/assets/music/Magic Fx 7.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/Magic Fx 7.ogg-8a3ae422bac9ed88f48079377b8e81ff.oggstr" + +[deps] + +source_file="res://assets/music/Magic Fx 7.ogg" +dest_files=[ "res://.import/Magic Fx 7.ogg-8a3ae422bac9ed88f48079377b8e81ff.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/godot/characters/player/Player.tscn b/godot/characters/player/Player.tscn index bbd2fc2..87f7b58 100644 --- a/godot/characters/player/Player.tscn +++ b/godot/characters/player/Player.tscn @@ -52,4 +52,4 @@ collision_mask = 24 [node name="Jump" type="AudioStreamPlayer" parent="Sounds"] stream = ExtResource( 8 ) -volume_db = -45.0 +volume_db = -23.953 diff --git a/godot/collectables/coin/Coin.tscn b/godot/collectables/coin/Coin.tscn index 6d52bb0..1c40bc1 100644 --- a/godot/collectables/coin/Coin.tscn +++ b/godot/collectables/coin/Coin.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=10 format=2] +[gd_scene load_steps=11 format=2] [ext_resource path="res://assets/coin.png" type="Texture" id=1] [ext_resource path="res://state_machine/StateMachine.gdns" type="Script" id=2] [ext_resource path="res://collectables/coin/states/CoinNotCollected.gdns" type="Script" id=3] [ext_resource path="res://collectables/coin/states/CoinCollected.gdns" type="Script" id=4] +[ext_resource path="res://assets/sounds/coin.wav" type="AudioStream" id=5] [sub_resource type="CircleShape2D" id=1] radius = 6.0 @@ -67,5 +68,9 @@ script = ExtResource( 4 ) [node name="AnimationPlayer" type="AnimationPlayer" parent="."] anims/jump = SubResource( 5 ) +[node name="CoinCollectedSound" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 5 ) +volume_db = -6.19 + [connection signal="body_entered" from="." to="StateMachine/CoinNotCollected" method="_on_body_entered" flags=6] [connection signal="animation_finished" from="AnimationPlayer" to="StateMachine/CoinCollected" method="_on_animation_finished" flags=6] diff --git a/godot/levels/Prototype.tscn b/godot/levels/Prototype.tscn index b71e0c7..39fe9ce 100644 --- a/godot/levels/Prototype.tscn +++ b/godot/levels/Prototype.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=8 format=2] +[gd_scene load_steps=9 format=2] [ext_resource path="res://CameraLimit.gdns" type="Script" id=1] [ext_resource path="res://characters/player/Player.tscn" type="PackedScene" id=2] @@ -6,6 +6,7 @@ [ext_resource path="res://assets/backgrounds/mountains.png" type="Texture" id=4] [ext_resource path="res://collectables/coin/Coin.tscn" type="PackedScene" id=5] [ext_resource path="res://hud/CoinHUD.tscn" type="PackedScene" id=6] +[ext_resource path="res://assets/music/Magic Fx 7.ogg" type="AudioStream" id=7] [ext_resource path="res://goal/Goal.tscn" type="PackedScene" id=8] [node name="Prototype" type="Node2D"] @@ -51,9 +52,17 @@ script = ExtResource( 1 ) [node name="coin" parent="Coins" instance=ExtResource( 5 )] position = Vector2( 72, 450 ) +[node name="AnimatedSprite" parent="Coins/coin" index="1"] +frame = 0 + [node name="coin2" parent="Coins" instance=ExtResource( 5 )] position = Vector2( 234, 450 ) [node name="Goal" parent="." instance=ExtResource( 8 )] +[node name="BGM" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 7 ) +volume_db = -29.714 +autoplay = true + [editable path="Coins/coin"] diff --git a/src/coin/CoinCollected.cpp b/src/coin/CoinCollected.cpp index 5c30b82..110be15 100644 --- a/src/coin/CoinCollected.cpp +++ b/src/coin/CoinCollected.cpp @@ -2,6 +2,7 @@ #include "Event.h" +#include #include void alai::CoinCollected::_register_methods() @@ -32,7 +33,8 @@ void alai::CoinCollected::_state_enter() auto animation_player = Object::cast_to(node); animation_player->play("jump"); } - + auto coin_collected_sound = get_parent()->get_node("CoinCollectedSound"); + coin_collected_sound->play(); } void alai::CoinCollected::_state_exit() diff --git a/src/gui/game_over/GameOverScreen.cpp b/src/gui/game_over/GameOverScreen.cpp index fc35153..299ccae 100644 --- a/src/gui/game_over/GameOverScreen.cpp +++ b/src/gui/game_over/GameOverScreen.cpp @@ -7,6 +7,8 @@ #include #include #include +#include +#include void alai::GameOverScreen::_register_methods() { @@ -14,6 +16,7 @@ void alai::GameOverScreen::_register_methods() register_method("_ready", &GameOverScreen::_ready); register_method("connect_signal", &GameOverScreen::connect_signal); register_method("_on_player_died", &GameOverScreen::_on_player_died); + register_method("_play music", &GameOverScreen::_play_music); } alai::GameOverScreen::GameOverScreen() @@ -29,9 +32,11 @@ void alai::GameOverScreen::_init() _resource_loader = godot::ResourceLoader::get_singleton(); } + void alai::GameOverScreen::_ready() { connect_signal(); + } void alai::GameOverScreen::_on_restart_button_pressed() @@ -85,3 +90,20 @@ void alai::GameOverScreen::connect_signal() auto event = get_node("/root/Event"); event->connect("player_died", this, "_on_player_died"); } + +void alai::GameOverScreen::_play_music() +{ + if (this->is_on_screen() == true) + { + auto game_over_sound = get_node("GameOverMusic"); + game_over_sound->play(); + + } + else + { + auto game_over_sound = get_node("GameOverMusic"); + game_over_sound->stop(); + } + + +} diff --git a/src/gui/game_over/GameOverScreen.h b/src/gui/game_over/GameOverScreen.h index 892a316..6e4b657 100644 --- a/src/gui/game_over/GameOverScreen.h +++ b/src/gui/game_over/GameOverScreen.h @@ -5,6 +5,7 @@ #include #include + namespace alai { /** @@ -53,6 +54,7 @@ namespace alai void _on_player_died(); void _on_restart_button_pressed(); void connect_signal(); + void _play_music(); }; } From 2e07679b52611a0bbfa4edf8f6aec36ce26d4e84 Mon Sep 17 00:00:00 2001 From: Martin Araneda Date: Thu, 1 Sep 2022 16:18:38 -0400 Subject: [PATCH 05/14] minor fix --- src/gui/game_over/GameOverScreen.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/game_over/GameOverScreen.cpp b/src/gui/game_over/GameOverScreen.cpp index 2c59ea7..622a032 100644 --- a/src/gui/game_over/GameOverScreen.cpp +++ b/src/gui/game_over/GameOverScreen.cpp @@ -16,7 +16,7 @@ void alai::GameOverScreen::_register_methods() godot::register_method("restart_game", &GameOverScreen::restart_game); godot::register_method("connect_signal", &GameOverScreen::connect_signal); godot::register_method("_on_player_died", &GameOverScreen::_on_player_died); - godot::register_method("_play music", &GameOverScreen::_play_music); + godot::register_method("_play_music", &GameOverScreen::_play_music); } alai::GameOverScreen::GameOverScreen() From 1f63f5e00ad5de26db34da000263c0063e5d2b26 Mon Sep 17 00:00:00 2001 From: Martin Araneda Date: Thu, 1 Sep 2022 16:37:50 -0400 Subject: [PATCH 06/14] Player touched signal added --- src/Event.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Event.cpp b/src/Event.cpp index 8795d1e..9605468 100644 --- a/src/Event.cpp +++ b/src/Event.cpp @@ -11,6 +11,8 @@ void alai::Event::_register_methods() godot::register_signal("coin_collected", "amount", GODOT_VARIANT_TYPE_INT); godot::register_signal("player_died"); godot::register_signal("player_won"); + godot::register_signal("player_touched", "damage", GODOT_VARIANT_TYPE_INT); + } alai::Event::Event() From 011a1b8007a266cac6b0eb2e2dfc5c5337bdd925 Mon Sep 17 00:00:00 2001 From: Martin Araneda Date: Thu, 1 Sep 2022 21:59:21 -0400 Subject: [PATCH 07/14] make the enemies use the event bus --- godot/characters/enemies/WalkingEnemy.gd | 5 +---- godot/characters/enemies/blightwing/Blightwing.gd | 5 +---- godot/characters/enemies/blockface/Blockface.gd | 5 +---- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/godot/characters/enemies/WalkingEnemy.gd b/godot/characters/enemies/WalkingEnemy.gd index 94a01b5..15707dc 100644 --- a/godot/characters/enemies/WalkingEnemy.gd +++ b/godot/characters/enemies/WalkingEnemy.gd @@ -1,9 +1,6 @@ extends KinematicBody2D -signal player_touched - - var velocity = Vector2() export var direction = -1 export var detect_edges = true @@ -32,7 +29,7 @@ func _physics_process(_delta: float) -> void: for i in get_slide_count(): var collision = get_slide_collision(i) if collision.collider.name == "Player": - emit_signal("player_touched") + Event.emit_signal("player_touched", 3) Event.emit_signal("object_updated", self.get_name(), "Walking", global_position, velocity) diff --git a/godot/characters/enemies/blightwing/Blightwing.gd b/godot/characters/enemies/blightwing/Blightwing.gd index 1446628..a41b7a1 100644 --- a/godot/characters/enemies/blightwing/Blightwing.gd +++ b/godot/characters/enemies/blightwing/Blightwing.gd @@ -1,9 +1,6 @@ extends KinematicBody2D -signal player_touched - - export var direction = -1 export var speed = 50 export var follow_path = false @@ -82,7 +79,7 @@ func get_velocity_towards_target(delta: float) -> Vector2: func wall_checker_collided(wall_checker: RayCast2D) -> void: if wall_checker.get_collider().name == "Player": - emit_signal("player_touched") + Event.emit_signal("player_touched", 3) direction *= -1 $AnimatedSprite.flip_h = not $AnimatedSprite.flip_h diff --git a/godot/characters/enemies/blockface/Blockface.gd b/godot/characters/enemies/blockface/Blockface.gd index 3f52a5a..fab7b04 100644 --- a/godot/characters/enemies/blockface/Blockface.gd +++ b/godot/characters/enemies/blockface/Blockface.gd @@ -1,9 +1,6 @@ extends KinematicBody2D -signal player_touched - - onready var start_position = position var velocity = Vector2() export var speed = 50.0 @@ -25,7 +22,7 @@ func _physics_process(delta: float) -> void: return_to_start = true $AnimatedSprite.play("normal") if collision.collider.name == "Player": - emit_signal("player_touched") + Event.emit_signal("player_touched", 3) Event.emit_signal("object_updated", self.get_name(), "Falling", global_position, velocity) if position.y <= start_position.y: From 6c0b656d798433635fee709c5a5bcf47a0994eda Mon Sep 17 00:00:00 2001 From: Martin Araneda Date: Thu, 1 Sep 2022 21:59:58 -0400 Subject: [PATCH 08/14] change music file name --- godot/assets/music/Magic Fx 7.ogg.import | 15 --------------- .../music/{Magic Fx 7.ogg => prototype_r.ogg} | 0 godot/assets/music/prototype_r.ogg.import | 15 +++++++++++++++ godot/levels/Prototype.tscn | 2 +- 4 files changed, 16 insertions(+), 16 deletions(-) delete mode 100644 godot/assets/music/Magic Fx 7.ogg.import rename godot/assets/music/{Magic Fx 7.ogg => prototype_r.ogg} (100%) create mode 100644 godot/assets/music/prototype_r.ogg.import diff --git a/godot/assets/music/Magic Fx 7.ogg.import b/godot/assets/music/Magic Fx 7.ogg.import deleted file mode 100644 index d27d30e..0000000 --- a/godot/assets/music/Magic Fx 7.ogg.import +++ /dev/null @@ -1,15 +0,0 @@ -[remap] - -importer="ogg_vorbis" -type="AudioStreamOGGVorbis" -path="res://.import/Magic Fx 7.ogg-8a3ae422bac9ed88f48079377b8e81ff.oggstr" - -[deps] - -source_file="res://assets/music/Magic Fx 7.ogg" -dest_files=[ "res://.import/Magic Fx 7.ogg-8a3ae422bac9ed88f48079377b8e81ff.oggstr" ] - -[params] - -loop=true -loop_offset=0 diff --git a/godot/assets/music/Magic Fx 7.ogg b/godot/assets/music/prototype_r.ogg similarity index 100% rename from godot/assets/music/Magic Fx 7.ogg rename to godot/assets/music/prototype_r.ogg diff --git a/godot/assets/music/prototype_r.ogg.import b/godot/assets/music/prototype_r.ogg.import new file mode 100644 index 0000000..4e378c2 --- /dev/null +++ b/godot/assets/music/prototype_r.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/prototype_r.ogg-fe1f80b61f2acb1c2ae620457cf8aac9.oggstr" + +[deps] + +source_file="res://assets/music/prototype_r.ogg" +dest_files=[ "res://.import/prototype_r.ogg-fe1f80b61f2acb1c2ae620457cf8aac9.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/godot/levels/Prototype.tscn b/godot/levels/Prototype.tscn index fed11b3..8880230 100644 --- a/godot/levels/Prototype.tscn +++ b/godot/levels/Prototype.tscn @@ -6,7 +6,7 @@ [ext_resource path="res://assets/backgrounds/mountains.png" type="Texture" id=4] [ext_resource path="res://collectables/coin/Coin.tscn" type="PackedScene" id=5] [ext_resource path="res://hud/CoinHUD.tscn" type="PackedScene" id=6] -[ext_resource path="res://assets/music/Magic Fx 7.ogg" type="AudioStream" id=7] +[ext_resource path="res://assets/music/prototype_r.ogg" type="AudioStream" id=7] [ext_resource path="res://goal/Goal.tscn" type="PackedScene" id=8] [node name="Prototype" type="Node2D"] From ba46d6c65bc48446a40648a640f4bf78043ebc78 Mon Sep 17 00:00:00 2001 From: Martin Araneda Date: Thu, 1 Sep 2022 22:00:59 -0400 Subject: [PATCH 09/14] Make player using the event bus for enemies touching him --- src/player/Player.cpp | 7 ++++--- src/player/Player.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/player/Player.cpp b/src/player/Player.cpp index 9a128f9..43dce2e 100644 --- a/src/player/Player.cpp +++ b/src/player/Player.cpp @@ -60,6 +60,7 @@ void alai::player::Player::_ready() { auto event = get_node("/root/Event"); event->connect("level_loaded", this, "_on_level_loaded"); + event->connect("player_touched", this, "_on_player_touched"); animated_sprite = get_node("AnimatedSprite"); if (!animated_sprite) @@ -156,11 +157,11 @@ void alai::player::Player::_physics_process(float delta) } else if (collider->is_in_group("enemy") && (collider->is_in_group("rideable") && godot::Vector2::DOWN.dot(collision->get_normal()) > 0)) { - _on_player_touched(); + _on_player_touched(3); } else if (collider->is_in_group("enemy") && !collider->is_in_group("rideable")) { - _on_player_touched(); + _on_player_touched(3); } } @@ -301,7 +302,7 @@ godot::Vector2 alai::player::Player::get_velocity() return this->velocity; } -void alai::player::Player::_on_player_touched() +void alai::player::Player::_on_player_touched(uint8_t damage) { auto event = get_node("/root/Event"); event->emit_signal("player_died"); diff --git a/src/player/Player.h b/src/player/Player.h index 578840a..9510e09 100644 --- a/src/player/Player.h +++ b/src/player/Player.h @@ -283,7 +283,7 @@ namespace alai * @brief This function is called when an enemy touches the player. * */ - void _on_player_touched(); + void _on_player_touched(uint8_t damage); /** * @brief Called when the monitor is loaded to connect the player to it for tracking. From 8adf91247e3d012975ca5f4907782b0610355413 Mon Sep 17 00:00:00 2001 From: Martin Araneda Date: Thu, 1 Sep 2022 22:01:16 -0400 Subject: [PATCH 10/14] Adjust jump volume --- godot/characters/player/Player.tscn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/godot/characters/player/Player.tscn b/godot/characters/player/Player.tscn index 87f7b58..5ac8d15 100644 --- a/godot/characters/player/Player.tscn +++ b/godot/characters/player/Player.tscn @@ -52,4 +52,4 @@ collision_mask = 24 [node name="Jump" type="AudioStreamPlayer" parent="Sounds"] stream = ExtResource( 8 ) -volume_db = -23.953 +volume_db = -20.0 From bc572df9f957dfec8ded19a1e4cbd41baf3ff2a6 Mon Sep 17 00:00:00 2001 From: Martin Araneda Date: Thu, 1 Sep 2022 22:01:45 -0400 Subject: [PATCH 11/14] Added coins and enemies to the PrototypeR map --- godot/levels/PrototypeR.tscn | 63 ++++++++++++++++++++++++++++++++++-- 1 file changed, 61 insertions(+), 2 deletions(-) diff --git a/godot/levels/PrototypeR.tscn b/godot/levels/PrototypeR.tscn index 299779a..f93944e 100644 --- a/godot/levels/PrototypeR.tscn +++ b/godot/levels/PrototypeR.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=14 format=2] [ext_resource path="res://CameraLimit.gdns" type="Script" id=1] [ext_resource path="res://characters/player/Player.tscn" type="PackedScene" id=2] @@ -6,8 +6,15 @@ [ext_resource path="res://assets/backgrounds/hills.png" type="Texture" id=4] [ext_resource path="res://hud/CoinHUD.tscn" type="PackedScene" id=5] [ext_resource path="res://collectables/coin/Coin.tscn" type="PackedScene" id=6] +[ext_resource path="res://assets/music/prototype_r.ogg" type="AudioStream" id=7] +[ext_resource path="res://goal/Goal.tscn" type="PackedScene" id=8] +[ext_resource path="res://characters/enemies/blockface/Blockface.tscn" type="PackedScene" id=9] +[ext_resource path="res://characters/enemies/shelly/Shelly.tscn" type="PackedScene" id=10] +[ext_resource path="res://characters/enemies/dreadtooth/Dreadtooth.tscn" type="PackedScene" id=11] +[ext_resource path="res://characters/enemies/spikeball/Spikeball.tscn" type="PackedScene" id=12] +[ext_resource path="res://characters/enemies/super_shelly/SuperShelly.tscn" type="PackedScene" id=13] -[node name="Prototype" type="Node2D"] +[node name="PrototypeR" type="Node2D"] [node name="Player" parent="." instance=ExtResource( 2 )] collision_layer = 5 @@ -59,14 +66,66 @@ position = Vector2( 1278, 342 ) [node name="Coin4" parent="Coins" instance=ExtResource( 6 )] position = Vector2( 1278, 180 ) +[node name="Coin9" parent="Coins" instance=ExtResource( 6 )] +position = Vector2( 1278, 108 ) + +[node name="Coin10" parent="Coins" instance=ExtResource( 6 )] +position = Vector2( 1800, 378 ) + +[node name="Coin11" parent="Coins" instance=ExtResource( 6 )] +position = Vector2( 1872, 378 ) + +[node name="Coin12" parent="Coins" instance=ExtResource( 6 )] +position = Vector2( 1836, 315 ) + [node name="Coin5" parent="Coins" instance=ExtResource( 6 )] position = Vector2( 522, 270 ) [node name="Coin6" parent="Coins" instance=ExtResource( 6 )] position = Vector2( 990, 324 ) +[node name="Coin13" parent="Coins" instance=ExtResource( 6 )] +position = Vector2( 1134, 414 ) + [node name="Coin7" parent="Coins" instance=ExtResource( 6 )] position = Vector2( 468, 306 ) [node name="Coin8" parent="Coins" instance=ExtResource( 6 )] position = Vector2( 576, 306 ) + +[node name="BGM" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 7 ) +volume_db = -25.0 +autoplay = true + +[node name="Goal" parent="." instance=ExtResource( 8 )] +position = Vector2( 2052, 396 ) + +[node name="Enemies" type="Node" parent="."] + +[node name="Blockface" parent="Enemies" instance=ExtResource( 9 )] +position = Vector2( 531, 228 ) + +[node name="Blockface2" parent="Enemies" instance=ExtResource( 9 )] +position = Vector2( 1287, 72 ) + +[node name="Shelly" parent="Enemies" instance=ExtResource( 10 )] +position = Vector2( 918, 258 ) + +[node name="Shelly2" parent="Enemies" instance=ExtResource( 10 )] +position = Vector2( 612, 360 ) + +[node name="Dreadtooth" parent="Enemies" instance=ExtResource( 11 )] +position = Vector2( 1337, 217 ) + +[node name="Spikeball" parent="Enemies" instance=ExtResource( 12 )] +position = Vector2( 1458, 336 ) + +[node name="Spikeball2" parent="Enemies" instance=ExtResource( 12 )] +position = Vector2( 1428, 348 ) + +[node name="Spikeball3" parent="Enemies" instance=ExtResource( 12 )] +position = Vector2( 1845, 366 ) + +[node name="SuperShelly" parent="Enemies" instance=ExtResource( 13 )] +position = Vector2( 1962, 432 ) From 9388e6f6f54f01a7f4b498edb4d602c5f9d44f16 Mon Sep 17 00:00:00 2001 From: Martin Araneda Date: Thu, 1 Sep 2022 22:21:13 -0400 Subject: [PATCH 12/14] Added some enemies --- godot/levels/PrototypeR.tscn | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/godot/levels/PrototypeR.tscn b/godot/levels/PrototypeR.tscn index f93944e..ada3c23 100644 --- a/godot/levels/PrototypeR.tscn +++ b/godot/levels/PrototypeR.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=14 format=2] +[gd_scene load_steps=15 format=2] [ext_resource path="res://CameraLimit.gdns" type="Script" id=1] [ext_resource path="res://characters/player/Player.tscn" type="PackedScene" id=2] @@ -13,6 +13,7 @@ [ext_resource path="res://characters/enemies/dreadtooth/Dreadtooth.tscn" type="PackedScene" id=11] [ext_resource path="res://characters/enemies/spikeball/Spikeball.tscn" type="PackedScene" id=12] [ext_resource path="res://characters/enemies/super_shelly/SuperShelly.tscn" type="PackedScene" id=13] +[ext_resource path="res://characters/enemies/blightwing/Blightwing.tscn" type="PackedScene" id=14] [node name="PrototypeR" type="Node2D"] @@ -129,3 +130,24 @@ position = Vector2( 1845, 366 ) [node name="SuperShelly" parent="Enemies" instance=ExtResource( 13 )] position = Vector2( 1962, 432 ) + +[node name="Blightwing" parent="Enemies" instance=ExtResource( 14 )] +position = Vector2( 1206, 450 ) +follow_path = true + +[node name="Path" type="Node2D" parent="Enemies/Blightwing"] + +[node name="Node2D" type="Node2D" parent="Enemies/Blightwing/Path"] +position = Vector2( -126, 0 ) + +[node name="Blightwing2" parent="Enemies" instance=ExtResource( 14 )] +position = Vector2( 1846, 324 ) +follow_path = true + +[node name="Path" type="Node2D" parent="Enemies/Blightwing2"] + +[node name="Node2D" type="Node2D" parent="Enemies/Blightwing2/Path"] +position = Vector2( -36, 63 ) + +[node name="Node2D2" type="Node2D" parent="Enemies/Blightwing2/Path"] +position = Vector2( 36, 63 ) From e6b170e4d886ad30d3ee8cf2545dc08a07218974 Mon Sep 17 00:00:00 2001 From: Martin Araneda Date: Thu, 1 Sep 2022 22:32:52 -0400 Subject: [PATCH 13/14] Remove unused signals --- godot/levels/PrototypeEnemies.tscn | 7 ------- 1 file changed, 7 deletions(-) diff --git a/godot/levels/PrototypeEnemies.tscn b/godot/levels/PrototypeEnemies.tscn index d53033f..f521a70 100644 --- a/godot/levels/PrototypeEnemies.tscn +++ b/godot/levels/PrototypeEnemies.tscn @@ -89,10 +89,3 @@ position = Vector2( 247, 439 ) [node name="SuperShelly" parent="Enemies" instance=ExtResource( 7 )] position = Vector2( 62, 546 ) - -[connection signal="player_touched" from="Enemies/Blightwing" to="Player" method="_on_player_touched"] -[connection signal="player_touched" from="Enemies/Blockface" to="Player" method="_on_player_touched"] -[connection signal="player_touched" from="Enemies/Dreadtooth" to="Player" method="_on_player_touched"] -[connection signal="player_touched" from="Enemies/Dreadtooth2" to="Player" method="_on_player_touched"] -[connection signal="player_touched" from="Enemies/Shelly" to="Player" method="_on_player_touched"] -[connection signal="player_touched" from="Enemies/SuperShelly" to="Player" method="_on_player_touched"] From fa4cff9c57b97bb45647cd19db2f3f64285a22b2 Mon Sep 17 00:00:00 2001 From: Martin Araneda Date: Thu, 1 Sep 2022 22:33:43 -0400 Subject: [PATCH 14/14] Added some visual details to the PrototypeR map --- godot/levels/PrototypeR.tmx | 4 ++-- godot/levels/PrototypeR.tscn | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/godot/levels/PrototypeR.tmx b/godot/levels/PrototypeR.tmx index 57d9e74..6280b25 100644 --- a/godot/levels/PrototypeR.tmx +++ b/godot/levels/PrototypeR.tmx @@ -3,12 +3,12 @@ - KLUv/WAAO9UGAOQDABIAAAATFAAnEiYoEjo8YgAAADs6dQA6iwAAAIwAOnUAihIoADd/YwAAAGQAAAB4AAAAdiY3ADqLYwAAgAA8oBCVNdsBwAKTQCJcY8XxUYoarT8gQjyeu5O6nkqpOlT1gMJhyWO43xyk5jp+D3SGOxcoT52U4vScQx63fcb98i+k3jK5QUu8pNUR8O+i4l7VPW51R5d4k1T3FuabG4vErcrOI+U6fRflI6vfRsa41pUIv1HPe0OudqI1qDNHH2bcTSH3r27pd6Tac6lM+3bwXaj+q2cxvogB + KLUv/WAAO+UJAKKFEBmgKa0BQ/z5f96XBipzAacygijAnyB3inwKFSvNi9glMAjxxA9XlsgtTIpZPMt4Y5dngxsSKwGqJ/AAXtOPtCPdGGCgMLGl7aACk0ACwdEBxfEUiOZVzal6o7kqyNAeN3fIyH7S5qp2c6UrxlMzmjiIKgDhsHQId31OUO2QhjGOn1jH74PYuHOc8tYy/qlHqaNzDnLc/nFdEc9bdesdom5Z3PEgeGCq2jtS46axwFMfv3dxfKgNZ5HU/e4tjqcWSd0k/yrTDSmpq+CqHl/d0aVt0urewnTzsUiyVcsyprra58l1+g7NC/UOqt5CzniZswtOyWRvAHxDn0csowOGV42bUrLGiSrDqDOLOIxxbSotgVq8/NT2n/z80u/Jz1KVb98VKDofNZOm5Ndvltmp+0cuUIUgKiT5TQw= - KLUv/WAAOz0FAIQCADEAAAAyMwACAAAAAwQAAhYAAAAXGAB6AAAAe3wAF4ZfAHuIAIZeiCygMLF1UIIUiARiZAelj/9XjXZV/ipp0q1TfoI4FDJcav6xkgcm3cqld/XLYVzNgPGrRkX6pwiG831dQsKVhvGrM0E5nOTUdZpyl96SqGcYDzh1mVBuKT0+fmorpXmjgBlElduJp59uitTebrC/onYW//xER7myT2JL+hkD + KLUv/WAAO50FAMQCADEAAAAyMwACAAAAAwQAGwACFgAAABcYABt6AAAAe3wAGxeGXwB7iACGXogxoCCzdWCCFIgEYmQHpY//V412Vf4gGemWL/1AEQoZHqr8I5IHRLoFS671y2WYzYBxqqNa2qcCCqf7uoRE1YZxqzJNOVxJqesG5R7dJVCGcRyg1GVAvQU6Pu6UVhrTRgcqSPFJzkzZ78bTSSezM7YmircT9lep4Hgo+u2SHKWql8yW9EEH diff --git a/godot/levels/PrototypeR.tscn b/godot/levels/PrototypeR.tscn index ada3c23..e6ac0ce 100644 --- a/godot/levels/PrototypeR.tscn +++ b/godot/levels/PrototypeR.tscn @@ -18,6 +18,7 @@ [node name="PrototypeR" type="Node2D"] [node name="Player" parent="." instance=ExtResource( 2 )] +position = Vector2( 36, 444 ) collision_layer = 5 [node name="Camera2D" type="Camera2D" parent="Player"]