diff options
author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-12-14 12:47:41 +0100 |
---|---|---|
committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-12-14 12:48:12 +0100 |
commit | 644c1ee1a1f109ae293cc6b09fafe8ba8b448ff3 (patch) | |
tree | 4dd37b0f133f03a420523322bea0a9e081898ded /src/example | |
parent | 98828008e9e1e3b94f1f882b266ef5d5c2180b9f (diff) |
more demo WIP
Diffstat (limited to 'src/example')
-rw-r--r-- | src/example/demo.cpp | 46 |
1 files changed, 43 insertions, 3 deletions
diff --git a/src/example/demo.cpp b/src/example/demo.cpp index a7d784e..d7adbdb 100644 --- a/src/example/demo.cpp +++ b/src/example/demo.cpp @@ -2,23 +2,63 @@ #include <crepe/api/Engine.h> #include <crepe/api/Scene.h> #include <crepe/api/Camera.h> +#include <crepe/api/BehaviorScript.h> +#include <crepe/api/Rigidbody.h> +#include <crepe/api/Config.h> using namespace crepe; using namespace std; +class PlayerController : public Script { + void update() { + } +}; + class DemoScene : public Scene { string get_name() const override { return "DemoScene"; } void load_scene() override { GameObject camera = new_object("camera"); - camera.add_component<Camera>(vec2{10, 10}, Camera::Data{}); + camera.add_component<Camera>(vec2{10, 10}, Camera::Data{ + .bg_color = {0x22, 0x22, 0x22}, + }); + + + GameObject ground = new_object("ground"); + Sprite & ground_sprite = ground.add_component<Sprite>( + Asset{"asset/demo/floor.png"}, + Sprite::Data{ + .size = {10, 2}, + } + ); + ground.transform.position = {0, 4}; + ground.add_component<Rigidbody>(Rigidbody::Data{ + .body_type = Rigidbody::BodyType::STATIC, + }); + ground.add_component<BoxCollider>(ground_sprite.data.size); + + + GameObject player = new_object("player"); + Sprite & player_sprite = player.add_component<Sprite>( + Asset{"asset/demo/player.png"}, + Sprite::Data{ + .size = { 1, 1 }, + } + ); + player.add_component<Rigidbody>(Rigidbody::Data{}); + player.add_component<BoxCollider>(player_sprite.data.size); + player.add_component<BehaviorScript>().set_script<PlayerController>(); } }; int main() { - Engine demo; + Config::get_instance() = { + .window = { + .size = {800, 800}, + }, + }; + Engine demo; demo.add_scene<DemoScene>(); - return demo.main(); } |