#include "PreviewScene.h" #include "Config.h" #include "background/BackgroundSubScene.h" #include "missile/MissilePool.h" #include "missile/SpawnEvent.h" #include "preview/NpcSubScene.h" #include "preview/PrevPlayerSubScene.h" #include "preview/SmokeSubScene.h" #include "missile/MissileSubScene.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace crepe; using namespace std; void PreviewScene::load_scene() { BackgroundSubScene background(*this); GameObject camera = new_object("camera", "camera", vec2(650, 0)); camera.add_component( ivec2(990, 720), vec2(VIEWPORT_X, VIEWPORT_Y), Camera::Data { .bg_color = Color::RED, } ); camera.add_component(Rigidbody::Data {}); camera.add_component().set_script(); 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)); GameObject world = this->new_object("world", "TAG", vec2 {0, 0}, 0, 1); world.add_component(Rigidbody::Data { .body_type = Rigidbody::BodyType::STATIC, .collision_layers = {0}, }); PrevPlayerSubScene player(*this); NpcSubScene npc(*this); SmokeSubScene smoke(*this); MissilePool mpool(*this); /* for (int i = 0; i < 200; ++i) { int row = i / 10; int col = i % 10; float x = col * 25 + i; float y = row * 25 - 400; GameObject game_coin = this->new_object("coin", "coin", vec2 {x, y}, 0, 1); Coin coin(game_coin, vec2 {0, 0}); } */ } string PreviewScene::get_name() const { return "preview scene"; }