From b445a1716a46dc875e0b2180c1a1b6022ec7a6d3 Mon Sep 17 00:00:00 2001 From: heavydemon21 Date: Wed, 8 Jan 2025 14:10:27 +0100 Subject: missile/preview/schedular/PreviewScene --- game/PreviewScene.cpp | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 game/PreviewScene.cpp (limited to 'game/PreviewScene.cpp') diff --git a/game/PreviewScene.cpp b/game/PreviewScene.cpp new file mode 100644 index 0000000..6cd9e78 --- /dev/null +++ b/game/PreviewScene.cpp @@ -0,0 +1,99 @@ +#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"; } -- cgit v1.2.3