diff options
author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-12-18 13:31:10 +0100 |
---|---|---|
committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-12-18 13:31:10 +0100 |
commit | 1a81eab8c0c4c0b6f7102ebceb68f259cfc595bb (patch) | |
tree | f3d62919e49cf154ff7e2a21606379b3db626440 /src/example/FontExample.cpp | |
parent | 1d182abe4278b6bf4410cb25a9ae41f501833990 (diff) | |
parent | 81404db80bbf9463c3d535ae389e7fbb753a902c (diff) |
Merge branch 'master' into loek/scripts
Diffstat (limited to 'src/example/FontExample.cpp')
-rw-r--r-- | src/example/FontExample.cpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/example/FontExample.cpp b/src/example/FontExample.cpp new file mode 100644 index 0000000..6a334b1 --- /dev/null +++ b/src/example/FontExample.cpp @@ -0,0 +1,55 @@ +#include <SDL2/SDL_ttf.h> +#include <chrono> +#include <crepe/api/Camera.h> +#include <crepe/api/Config.h> +#include <crepe/api/GameObject.h> +#include <crepe/api/LoopManager.h> +#include <crepe/api/Scene.h> +#include <crepe/api/Script.h> +#include <crepe/api/Text.h> +#include <crepe/facade/Font.h> +#include <crepe/facade/SDLContext.h> +#include <crepe/manager/EventManager.h> +#include <crepe/manager/Mediator.h> +#include <crepe/manager/ResourceManager.h> +#include <exception> +#include <iostream> +#include <memory> +using namespace crepe; +using namespace std; +using namespace std::chrono; +class TestScript : public Script { +public: + steady_clock::time_point start_time; + virtual void init() override { start_time = steady_clock::now(); } + virtual void update() override { + auto now = steady_clock::now(); + auto elapsed = duration_cast<seconds>(now - start_time).count(); + + if (elapsed >= 5) { + Mediator & med = mediator; + EventManager & event_mgr = med.event_manager; + event_mgr.trigger_event<ShutDownEvent>(); + } + } +}; +class TestScene : public Scene { +public: + void load_scene() override { + GameObject text_object = this->new_object("test", "test", vec2{0, 0}, 0, 1); + text_object.add_component<Text>(vec2(100, 100), vec2(0, 0), "OpenSymbol", + Text::Data{}); + text_object.add_component<BehaviorScript>().set_script<TestScript>(); + text_object.add_component<Camera>(ivec2{300, 300}, vec2{100, 100}, Camera::Data{}); + } + std::string get_name() const override { return "hey"; } +}; +int main() { + // Config& config = Config::get_instance(); + // config.log.level = Log::Level::TRACE; + LoopManager engine; + engine.add_scene<TestScene>(); + engine.start(); + + return 0; +} |