aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWBoerenkamps <wrj.boerenkamps@student.avans.nl>2024-12-16 22:56:42 +0100
committerWBoerenkamps <wrj.boerenkamps@student.avans.nl>2024-12-16 22:56:42 +0100
commitd33dbdff59693377d06d83225b0fe78c3168c464 (patch)
treeb8a467f4cb6cea9c4ce3a50b6170dbce95542e7d
parent58c57578cae755422c35acfbbdf9ad399b4fd826 (diff)
segmentation fault fixed
-rw-r--r--src/crepe/facade/Font.cpp7
-rw-r--r--src/example/FontExample.cpp17
2 files changed, 15 insertions, 9 deletions
diff --git a/src/crepe/facade/Font.cpp b/src/crepe/facade/Font.cpp
index 1ee3de1..333e500 100644
--- a/src/crepe/facade/Font.cpp
+++ b/src/crepe/facade/Font.cpp
@@ -10,10 +10,11 @@ Font::Font(const Asset & src, Mediator & mediator)
font(nullptr, TTF_CloseFont) {
Config & config = Config::get_instance();
const std::string FONT_PATH = src.get_path();
- TTF_Font * font = TTF_OpenFont(FONT_PATH.c_str(), config.font.size);
- if (font == NULL)
+ TTF_Font * loaded_font = TTF_OpenFont(FONT_PATH.c_str(), config.font.size);
+ if (loaded_font == NULL) {
throw runtime_error(format("Font: {} (path: {})", TTF_GetError(), FONT_PATH));
- this->font = {font, [](TTF_Font * font) { TTF_CloseFont(font); }};
+ }
+ this->font = {loaded_font, [](TTF_Font * font) { TTF_CloseFont(font); }};
}
TTF_Font * Font::get_font() const { return this->font.get(); }
diff --git a/src/example/FontExample.cpp b/src/example/FontExample.cpp
index 620cf8e..c2f21c4 100644
--- a/src/example/FontExample.cpp
+++ b/src/example/FontExample.cpp
@@ -7,7 +7,9 @@
#include <crepe/manager/EventManager.h>
#include <crepe/api/Scene.h>
#include <crepe/api/Script.h>
+#include <crepe/api/LoopManager.h>
#include <crepe/api/GameObject.h>
+#include <crepe/api/Camera.h>
#include <exception>
#include <iostream>
#include <memory>
@@ -25,7 +27,7 @@ class TestScript : public Script{
auto now = steady_clock::now();
auto elapsed = duration_cast<seconds>(now - start_time).count();
- if (elapsed >= 1) {
+ if (elapsed >= 5) {
Mediator& med = mediator;
EventManager& event_mgr = med.event_manager;
event_mgr.trigger_event<ShutDownEvent>();
@@ -37,15 +39,18 @@ class TestScene : public Scene{
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), "test test",
- "OpenSymbol", Text::Data{});
- text_object.add_component<BehaviorScript>();
+ "Noto Sans", 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(){ return "hey";}
+ std::string get_name() const override { return "hey"; }
};
int main() {
-
-
+ LoopManager engine;
+ engine.add_scene<TestScene>();
+ engine.start();
return 0;
}