diff options
Diffstat (limited to 'src/example')
| -rw-r--r-- | src/example/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | src/example/FontExample.cpp | 55 | ||||
| -rw-r--r-- | src/example/loadfont.cpp | 46 | ||||
| -rw-r--r-- | src/example/rendering_particle.cpp | 30 | 
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"; };  |