From 8dcd74c0672014c34175e237120209c15345fbad Mon Sep 17 00:00:00 2001 From: Max-001 Date: Fri, 10 Jan 2025 15:19:28 +0100 Subject: Fixed Paralax --- game/scheduler/ObjectsScheduler.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/game/scheduler/ObjectsScheduler.cpp b/game/scheduler/ObjectsScheduler.cpp index 3ce2018..36bf901 100644 --- a/game/scheduler/ObjectsScheduler.cpp +++ b/game/scheduler/ObjectsScheduler.cpp @@ -37,10 +37,18 @@ bool ObjectsScheduler::boss_fight_1_event() { this->get_components_by_name("player").front().get().data.linear_velocity.x = PLAYER_SPEED * 0.02; + bool first = true; RefVector rb_back_forest = this->get_components_by_tag("forest_background"); - rb_back_forest.front().get().data.linear_velocity.x = 30; - rb_back_forest.back().get().data.linear_velocity.x = 40; + for (Rigidbody & rb : rb_back_forest) { + if (first == true) { + rb.data.linear_velocity.x = 30; + first = false; + } else { + rb.data.linear_velocity.x = 40; + first = true; + } + } return false; } -- cgit v1.2.3 From 892e109b5a0ca943c15b589a0c7621bc395223cd Mon Sep 17 00:00:00 2001 From: Max-001 Date: Fri, 10 Jan 2025 15:59:45 +0100 Subject: Implemented Shop --- game/player/PlayerSubScene.cpp | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/game/player/PlayerSubScene.cpp b/game/player/PlayerSubScene.cpp index 371bc42..3aeabfe 100644 --- a/game/player/PlayerSubScene.cpp +++ b/game/player/PlayerSubScene.cpp @@ -5,8 +5,8 @@ #include "../Config.h" #include "../coins/CoinScript.h" -#include "api/Asset.h" +#include #include #include #include @@ -16,6 +16,7 @@ #include #include #include +#include #include using namespace crepe; @@ -24,7 +25,23 @@ using namespace std; PlayerSubScene::PlayerSubScene(Scene & scn) { GameObject player = scn.new_object("player", "player", vec2(-100, 200)); - Asset player_bullet {"asset/other_effects/effect_smgbullet.png"}; + SaveManager & save = scn.get_save_manager(); + ValueBroker particle_type = save.get(JETPACK_PARTICLES, 0); + + string player_bullet_string; + string player_bullet_x2_string; + string player_shell_string; + if (particle_type.get() == 0) { + player_bullet_string = "asset/other_effects/effect_smgbullet.png"; + player_bullet_x2_string = "asset/other_effects/effect_smgbullet_x2.png"; + player_shell_string = "asset/other_effects/effect_rocketmgshell_TVOS.png"; + } else { + player_bullet_string = "asset/background/aquarium/bubble.png"; + player_bullet_x2_string = "asset/background/aquarium/bubble.png"; + player_shell_string = "asset/background/aquarium/bubble.png"; + } + + Asset player_bullet {player_bullet_string}; Sprite & player_bullet_sprite = player.add_component( player_bullet, Sprite::Data { @@ -45,7 +62,7 @@ PlayerSubScene::PlayerSubScene(Scene & scn) { .reset_on_exit = true, }, }); - Asset player_bullet_x2 {"asset/other_effects/effect_smgbullet_x2.png"}; + Asset player_bullet_x2 {player_bullet_x2_string}; Sprite & player_bullet_x2_sprite = player.add_component( player_bullet_x2, Sprite::Data { @@ -66,7 +83,7 @@ PlayerSubScene::PlayerSubScene(Scene & scn) { .reset_on_exit = true, }, }); - Asset player_shell {"asset/other_effects/effect_rocketmgshell_TVOS.png"}; + Asset player_shell {player_shell_string}; Sprite & player_shell_sprite = player.add_component( player_shell, Sprite::Data { -- cgit v1.2.3 From 90a33d36c34b1512270a6724564995dd8bf914a6 Mon Sep 17 00:00:00 2001 From: Max-001 Date: Fri, 10 Jan 2025 16:47:08 +0100 Subject: Bug fixes --- game/player/PlayerEndScript.cpp | 3 ++- src/crepe/api/Config.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/game/player/PlayerEndScript.cpp b/game/player/PlayerEndScript.cpp index 4ae813f..62fd350 100644 --- a/game/player/PlayerEndScript.cpp +++ b/game/player/PlayerEndScript.cpp @@ -92,8 +92,9 @@ bool PlayerEndScript::on_collision(const crepe::CollisionEvent & ev) { jump++; } - if (rb_player.data.linear_velocity.x < 5 && jump >= 3) { + if (rb_player.data.linear_velocity.x < 5 && jump == 3) { this->trigger_event(); + jump++; } return false; diff --git a/src/crepe/api/Config.h b/src/crepe/api/Config.h index 7475528..65a8302 100644 --- a/src/crepe/api/Config.h +++ b/src/crepe/api/Config.h @@ -86,7 +86,7 @@ struct Config final { * This config option is the font size at which all fonts will be loaded initially. * */ - unsigned int size = 500; + unsigned int size = 100; } font; //! Configuration for click tolerance. struct { -- cgit v1.2.3 From 842ed3c20d923a84b5a267169b15c2170f97f099 Mon Sep 17 00:00:00 2001 From: Max-001 Date: Fri, 10 Jan 2025 17:37:36 +0100 Subject: Spawn more enemies when game is further --- game/scheduler/ObjectsScheduler.cpp | 45 ++++++++++++++++++++++++------------- game/scheduler/ObjectsScheduler.h | 2 ++ 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/game/scheduler/ObjectsScheduler.cpp b/game/scheduler/ObjectsScheduler.cpp index 0839fe5..7f58c79 100644 --- a/game/scheduler/ObjectsScheduler.cpp +++ b/game/scheduler/ObjectsScheduler.cpp @@ -12,35 +12,50 @@ #include "prefab/ZapperPoolSubScene.h" using namespace crepe; + void ObjectsScheduler::preset_0() { - trigger_event(MissileSpawnEvent {}); - trigger_event(MissileSpawnEvent {}); - this->trigger_event(BattleStartEvent { - .num_enemies = Random::i(2, 0), - .battle = false, - }); + for (int i = 0; i < this->amount_of_boss_fights; i++) { + this->trigger_event(MissileSpawnEvent {}); + } + if (this->amount_of_boss_fights >= 1) { + this->trigger_event(BattleStartEvent { + .num_enemies = Random::i(this->amount_of_boss_fights, 0), + .battle = false, + }); + } } + void ObjectsScheduler::preset_1() { trigger_event(MissileSpawnEvent {}); - this->trigger_event(BattleStartEvent { - .num_enemies = Random::i(2, 1), - .battle = false, - }); + if (this->amount_of_boss_fights >= 3) { + this->trigger_event(BattleStartEvent { + .num_enemies = Random::i(1, 0), + .battle = false, + }); + } } + void ObjectsScheduler::preset_2() { trigger_event(CreateZapperEvent {}); - this->trigger_event(BattleStartEvent { - .num_enemies = Random::i(2, 1), - .battle = false, - }); + if (this->amount_of_boss_fights >= 2) { + this->trigger_event(BattleStartEvent { + .num_enemies = Random::i(2, 1), + .battle = false, + }); + } } + void ObjectsScheduler::preset_3() { trigger_event(CreateZapperEvent {}); } + void ObjectsScheduler::preset_4() {} + void ObjectsScheduler::boss_fight_1() { this->get_components_by_name("camera").front().get().data.linear_velocity.x = 0; this->get_components_by_name("player").front().get().data.linear_velocity.x = 0; + + this->amount_of_boss_fights++; this->trigger_event(BattleStartEvent { - .num_enemies = 5, + .num_enemies = amount_of_boss_fights, .battle = true, }); diff --git a/game/scheduler/ObjectsScheduler.h b/game/scheduler/ObjectsScheduler.h index bd0701b..7ada8e1 100644 --- a/game/scheduler/ObjectsScheduler.h +++ b/game/scheduler/ObjectsScheduler.h @@ -16,6 +16,8 @@ private: int obstacle_interval = 350; int start_offset = 1300; + int amount_of_boss_fights = 0; + private: void preset_0(); void preset_1(); -- cgit v1.2.3