aboutsummaryrefslogtreecommitdiff
path: root/src/example/FontExample.cpp
blob: 6a334b1b0fb983e7ac0637ccb31acb12b4e06ff5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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;
}