#include "GameScene.h" #include "Config.h" #include "MoveCameraManualyScript.h" #include "StartGameScript.h" #include "coins/CoinPoolSubScene.h" #include "coins/CoinSystemScript.h" #include "background/BackgroundSubScene.h" #include "enemy/BattleScript.h" #include "enemy/EnemyBulletPool.h" #include "enemy/EnemyBulletSubScene.h" #include "enemy/EnemyPool.h" #include "enemy/EnemySubScene.h" #include "hud/HudScript.h" #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 "prefab/ZapperPoolSubScene.h" #include "scheduler/ObjectsScheduler.h" #include "workers/WorkersSubScene.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace crepe; using namespace std; void GameScene::load_scene() { BackgroundSubScene background(*this); GameObject camera = new_object(CAMERA_NAME, "camera", vec2(650, 0)); camera.add_component( ivec2(990, 720), vec2(VIEWPORT_X, VIEWPORT_Y), Camera::Data { .bg_color = Color::BLACK, } ); //camera.add_component().set_script(); camera.add_component().set_script(); camera.add_component().set_script(); camera.add_component().set_script(); camera.add_component().set_script(); camera.add_component().set_script(); camera.add_component().set_script(); camera.add_component(Rigidbody::Data {}); AI & enemy_path_1 = camera.add_component(400); enemy_path_1.make_oval_path(100, 100, camera.transform.position, 1.5708, true); AI & enemy_path_2 = camera.add_component(400); enemy_path_2.make_oval_path(100, 100, {0, 0}, 1.5708, true); AI & enemy_path_3 = camera.add_component(400); enemy_path_3.make_oval_path(100, 100, {0, 0}, 1.5708, true); // camer.add_component PlayerSubScene player(*this); MissilePool missile_pool(*this); WorkersSubScene workers(*this); GameObject floor = new_object("floor", "game_world", vec2(0, 325)); floor.add_component(Rigidbody::Data { .body_type = Rigidbody::BodyType::STATIC, .collision_layer = COLL_LAY_BOT_TOP, }); floor.add_component(vec2(INFINITY, 200)); GameObject floor_low = new_object("floor_low", "game_world", vec2(0, 350)); floor_low.add_component(Rigidbody::Data { .body_type = Rigidbody::BodyType::STATIC, .collision_layer = COLL_LAY_BOT_LOW, }); floor_low.add_component(vec2(INFINITY, 200)); GameObject floor_high = new_object("floor_high", "game_world", vec2(0, 300)); floor_high.add_component(Rigidbody::Data { .body_type = Rigidbody::BodyType::STATIC, .collision_layer = COLL_LAY_BOT_HIGH, }); GameObject ceiling = new_object("ceiling", "game_world", vec2(0, -325)); ceiling.add_component(Rigidbody::Data { .body_type = Rigidbody::BodyType::STATIC, .collision_layer = COLL_LAY_BOT_TOP, }); ceiling.add_component(vec2(INFINITY, 200)); ZapperPoolSubScene {*this}; GameObject start_game_script = new_object("start_game_script", "script", vec2(0, 0)); start_game_script.add_component().set_script(); //create coin pool CoinPoolSubScene coin_system; coin_system.create_coins(*this); EnemyBulletPool enemy_bullet_pool; enemy_bullet_pool.create_bullets(*this); PlayerBulletPool player_bullet_pool; player_bullet_pool.create_bullets(*this); EnemyPool enemy_pool; 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(background_music_asset); GameObject boom_audio = new_object("boom_audio", "audio", vec2(0, 0)); Asset boom_audio_asset {"asset/sfx/window_smash.ogg"}; boom_audio.add_component(boom_audio_asset); EndGameSubScene endgamewindow; endgamewindow.create(*this); } string GameScene::get_name() const { return "scene1"; }