aboutsummaryrefslogtreecommitdiff
path: root/game/GameScene.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'game/GameScene.cpp')
-rw-r--r--game/GameScene.cpp69
1 files changed, 17 insertions, 52 deletions
diff --git a/game/GameScene.cpp b/game/GameScene.cpp
index d4d07ec..a255e17 100644
--- a/game/GameScene.cpp
+++ b/game/GameScene.cpp
@@ -14,9 +14,13 @@
#include "hud/HudSubScene.h"
#include "hud/SpeedScript.h"
#include "menus/endgame/EndGameSubScene.h"
+#include "missile/MissilePool.h"
+#include "missile/SpawnEvent.h"
#include "player/PlayerBulletPool.h"
#include "player/PlayerBulletSubScene.h"
#include "player/PlayerSubScene.h"
+#include "scheduler/ObjectsScheduler.h"
+#include "prefab/ZapperPoolSubScene.h"
#include "workers/WorkersSubScene.h"
#include <cmath>
@@ -41,19 +45,24 @@ using namespace crepe;
using namespace std;
void GameScene::load_scene() {
+ logf(Log::DEBUG, "Loading (main) GameScene...");
+
BackgroundSubScene background(*this);
- GameObject camera = new_object("camera", "camera", vec2(650, 0));
- Camera & camera_cam = camera.add_component<Camera>(
+ GameObject camera = new_object(CAMERA_NAME, "camera", vec2(650, 0));
+ camera.add_component<Camera>(
ivec2(990, 720), vec2(VIEWPORT_X, VIEWPORT_Y),
Camera::Data {
- .bg_color = Color::RED,
+ .bg_color = Color::BLACK,
}
);
camera.add_component<BehaviorScript>().set_script<MoveCameraManualyScript>();
camera.add_component<BehaviorScript>().set_script<CoinSystemScript>();
camera.add_component<BehaviorScript>().set_script<HudScript>();
camera.add_component<BehaviorScript>().set_script<SpeedScript>();
+ camera.add_component<BehaviorScript>().set_script<ObjectsScheduler>();
+ camera.add_component<BehaviorScript>().set_script<MissileSpawnEventHandler>();
+
camera.add_component<BehaviorScript>().set_script<BattleScript>();
camera.add_component<Rigidbody>(Rigidbody::Data {});
AI & enemy_path_1 = camera.add_component<AI>(400);
@@ -65,6 +74,8 @@ void GameScene::load_scene() {
// camer.add_component<AI>
PlayerSubScene player(*this);
+ MissilePool missile_pool(*this);
+
WorkersSubScene workers(*this);
GameObject floor = new_object("floor", "game_world", vec2(0, 325));
@@ -91,6 +102,8 @@ void GameScene::load_scene() {
});
ceiling.add_component<BoxCollider>(vec2(INFINITY, 200));
+ ZapperPoolSubScene {*this};
+
GameObject start_game_script = new_object("start_game_script", "script", vec2(0, 0));
start_game_script.add_component<BehaviorScript>().set_script<StartGameScript>();
@@ -105,6 +118,7 @@ void GameScene::load_scene() {
enemy_pool.create_enemies(*this);
HudSubScene hud;
hud.create(*this);
+
GameObject background_music = new_object("background_music", "audio", vec2(0, 0));
Asset background_music_asset {"asset/music/level.ogg"};
background_music.add_component<AudioSource>(background_music_asset);
@@ -113,55 +127,6 @@ void GameScene::load_scene() {
Asset boom_audio_asset {"asset/sfx/window_smash.ogg"};
boom_audio.add_component<AudioSource>(boom_audio_asset);
- // zapper, laser and missile (below) for testing purpose only!!!
- GameObject zapper = new_object("zapper", "zapper", vec2(1000, 200));
- Asset zapper_asset {"asset/obstacles/zapper/regular_zappers/zapEffect.png"};
- Sprite & zapper_sprite = zapper.add_component<Sprite>(
- zapper_asset,
- Sprite::Data {
- .sorting_in_layer = SORT_IN_LAY_OBSTACLES,
- .order_in_layer = 0,
- .size = vec2(100, 100),
- }
- );
- zapper.add_component<Rigidbody>(Rigidbody::Data {
- .body_type = Rigidbody::BodyType::KINEMATIC,
- .kinematic_collision = false,
- .collision_layer = COLL_LAY_ZAPPER,
- });
- zapper.add_component<BoxCollider>(vec2(100, 100));
- GameObject laser = new_object("laser", "laser", vec2(2000, 200));
- Asset laser_asset {"asset/obstacles/laser/laserPower.png"};
- Sprite & laser_sprite = laser.add_component<Sprite>(
- laser_asset,
- Sprite::Data {
- .sorting_in_layer = SORT_IN_LAY_OBSTACLES,
- .order_in_layer = 0,
- .size = vec2(100, 100),
- }
- );
- laser.add_component<Rigidbody>(Rigidbody::Data {
- .body_type = Rigidbody::BodyType::KINEMATIC,
- .kinematic_collision = false,
- .collision_layer = COLL_LAY_LASER,
- });
- laser.add_component<BoxCollider>(vec2(100, 100));
- GameObject missile = new_object("missile", "missile", vec2(4000, 200));
- Asset missile_asset {"asset/obstacles/missile/missile.png"};
- Sprite & missile_sprite = missile.add_component<Sprite>(
- missile_asset,
- Sprite::Data {
- .sorting_in_layer = SORT_IN_LAY_OBSTACLES,
- .order_in_layer = 0,
- .size = vec2(100, 100),
- }
- );
- missile.add_component<Rigidbody>(Rigidbody::Data {
- .body_type = Rigidbody::BodyType::KINEMATIC,
- .kinematic_collision = false,
- .collision_layer = COLL_LAY_MISSILE,
- });
- missile.add_component<BoxCollider>(vec2(100, 100));
EndGameSubScene endgamewindow;
endgamewindow.create(*this);
}