aboutsummaryrefslogtreecommitdiff
path: root/src/example
diff options
context:
space:
mode:
Diffstat (limited to 'src/example')
-rw-r--r--src/example/CMakeLists.txt2
-rw-r--r--src/example/FontExample.cpp55
-rw-r--r--src/example/loadfont.cpp46
-rw-r--r--src/example/rendering_particle.cpp30
4 files changed, 111 insertions, 22 deletions
diff --git a/src/example/CMakeLists.txt b/src/example/CMakeLists.txt
index 187ed46..f62414e 100644
--- a/src/example/CMakeLists.txt
+++ b/src/example/CMakeLists.txt
@@ -19,4 +19,6 @@ endfunction()
add_example(rendering_particle)
add_example(game)
add_example(button)
+add_example(loadfont)
+add_example(FontExample)
add_example(AITest)
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;
+}
diff --git a/src/example/loadfont.cpp b/src/example/loadfont.cpp
new file mode 100644
index 0000000..ed67ffa
--- /dev/null
+++ b/src/example/loadfont.cpp
@@ -0,0 +1,46 @@
+#include <SDL2/SDL_ttf.h>
+#include <crepe/api/Asset.h>
+#include <crepe/api/Text.h>
+#include <crepe/facade/Font.h>
+#include <crepe/facade/SDLContext.h>
+#include <crepe/manager/Mediator.h>
+#include <crepe/manager/ResourceManager.h>
+#include <exception>
+#include <iostream>
+#include <memory>
+#include <optional>
+using namespace crepe;
+int main() {
+
+ // SDLFontContext font_facade;
+ Mediator mediator;
+ SDLContext sdl_context{mediator};
+ // ComponentManager component_manager{mediator};
+ ResourceManager resource_manager{mediator};
+ try {
+ // Correct way to create a unique pointer for Text
+ std::unique_ptr<Text> label = std::make_unique<Text>(
+ 1, vec2(100, 100), vec2(0, 0), "OpenSymbol", Text::Data{}, "test text", Asset(""));
+ // std::cout << "Path: " << label->font.get_path() << std::endl;
+
+ std::unique_ptr<Text> label2 = std::make_unique<Text>(
+ 1, vec2(100, 100), vec2(0, 0), "fsaafdafsdafsdafsdasfdds", Text::Data{});
+ Asset asset = Asset("test test");
+ label->font = asset;
+ std::cout << label->font.value().get_path() << std::endl;
+ // label2->font = std::make_optional(asset);
+ // std::cout << "Path: " << label2->font.get_path() << std::endl;
+ // ResourceManager & resource_mgr = mediator.resource_manager;
+ // const Font & res = resource_manager.get<Font>(label->font);
+ // TTF_Font * test_font = res.get_font();
+ // if (test_font == NULL) {
+ // std::cout << "error with font" << std::endl;
+ // } else {
+ // std::cout << "correct font retrieved" << std::endl;
+ // }
+ } catch (const std::exception & e) {
+ std::cout << "Standard exception thrown: " << e.what() << std::endl;
+ }
+
+ return 0;
+}
diff --git a/src/example/rendering_particle.cpp b/src/example/rendering_particle.cpp
index add43f4..e8b3775 100644
--- a/src/example/rendering_particle.cpp
+++ b/src/example/rendering_particle.cpp
@@ -1,4 +1,7 @@
+
+
#include "api/Asset.h"
+#include "api/Text.h"
#include <crepe/Component.h>
#include <crepe/api/Animator.h>
#include <crepe/api/Button.h>
@@ -13,7 +16,6 @@
#include <crepe/manager/ComponentManager.h>
#include <crepe/manager/Mediator.h>
#include <crepe/types.h>
-#include <iostream>
using namespace crepe;
using namespace std;
@@ -21,11 +23,7 @@ using namespace std;
class TestScene : public Scene {
public:
void load_scene() {
-
- cout << "TestScene" << endl;
- Mediator & mediator = this->mediator;
- ComponentManager & mgr = mediator.component_manager;
- GameObject game_object = mgr.new_object("", "", vec2{0, 0}, 0, 1);
+ GameObject game_object = new_object("", "", vec2{0, 0}, 0, 1);
Color color(255, 255, 255, 255);
@@ -37,29 +35,17 @@ public:
.flip = Sprite::FlipSettings{false, false},
.sorting_in_layer = 2,
.order_in_layer = 2,
- .size = {0, 100},
+ .size = {0, 0},
.angle_offset = 0,
.position_offset = {0, 0},
});
- //auto & anim = game_object.add_component<Animator>(test_sprite,ivec2{32, 64}, uvec2{4,1}, Animator::Data{});
- //anim.set_anim(0);
-
- auto & cam = game_object.add_component<Camera>(ivec2{720, 1280}, vec2{400, 400},
+ auto & cam = game_object.add_component<Camera>(ivec2{1280, 720}, vec2{400, 400},
Camera::Data{
.bg_color = Color::WHITE,
});
-
- function<void()> on_click = [&]() { cout << "button clicked" << std::endl; };
- function<void()> on_enter = [&]() { cout << "enter" << std::endl; };
- function<void()> on_exit = [&]() { cout << "exit" << std::endl; };
-
- auto & button
- = game_object.add_component<Button>(vec2{200, 200}, vec2{0, 0}, on_click, false);
- button.on_mouse_enter = on_enter;
- button.on_mouse_exit = on_exit;
- button.is_toggle = true;
- button.active = true;
+ game_object.add_component<Text>(vec2{400, 400}, vec2{0, 0}, "ComicSansMS",
+ Text::Data{.text_color = Color::RED}, "TEST test");
}
string get_name() const { return "TestScene"; };