diff options
Diffstat (limited to 'src/example')
| -rw-r--r-- | src/example/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/example/asset_manager.cpp | 35 | ||||
| -rw-r--r-- | src/example/rendering.cpp | 82 | 
3 files changed, 88 insertions, 30 deletions
diff --git a/src/example/CMakeLists.txt b/src/example/CMakeLists.txt index 9d82827..1b148b3 100644 --- a/src/example/CMakeLists.txt +++ b/src/example/CMakeLists.txt @@ -16,4 +16,5 @@ add_example(audio_internal)  add_example(components_internal)  add_example(script)  add_example(rendering) +add_example(asset_manager) diff --git a/src/example/asset_manager.cpp b/src/example/asset_manager.cpp new file mode 100644 index 0000000..9b41c2f --- /dev/null +++ b/src/example/asset_manager.cpp @@ -0,0 +1,35 @@ + + +#include <crepe/Sound.h> +#include <crepe/api/AssetManager.h> +#include <crepe/api/Texture.h> + +using namespace crepe; +using namespace crepe::api; +int main() { + +	// this needs to be called before the asset manager otherwise the destructor of sdl is not in the right order +	{ +		Texture test("../asset/texture/img.png"); +	} + +	auto & mgr = AssetManager::get_instance(); + +	{ +		auto bgm = mgr.cache<Sound>("../mwe/audio/bgm.ogg"); +		auto sfx1 = mgr.cache<Sound>("../mwe/audio/sfx1.wav"); +		auto sfx2 = mgr.cache<Sound>("../mwe/audio/sfx2.wav"); + +		auto img = mgr.cache<Texture>("../asset/texture/img.png"); +		auto img1 = mgr.cache<Texture>("../asset/texture/second.png"); +	} + +	{ +		auto bgm = mgr.cache<Sound>("../mwe/audio/bgm.ogg"); +		auto sfx1 = mgr.cache<Sound>("../mwe/audio/sfx1.wav"); +		auto sfx2 = mgr.cache<Sound>("../mwe/audio/sfx2.wav"); + +		auto img = mgr.cache<Texture>("../asset/texture/img.png"); +		auto img1 = mgr.cache<Texture>("../asset/texture/second.png"); +	} +} diff --git a/src/example/rendering.cpp b/src/example/rendering.cpp index 9ca12b7..34d9f66 100644 --- a/src/example/rendering.cpp +++ b/src/example/rendering.cpp @@ -1,52 +1,74 @@ - -#include <crepe/util/log.h> -#include <crepe/GameObject.h>  #include <crepe/ComponentManager.h> +#include <crepe/GameObject.h>  #include <crepe/RenderSystem.h> - +#include <crepe/util/log.h>  #include <crepe/api/Color.h> +#include <crepe/api/Point.h>  #include <crepe/api/Sprite.h>  #include <crepe/api/Texture.h>  #include <crepe/api/Transform.h> -#include <crepe/api/Point.h> +#include <crepe/api/AssetManager.h> - -#include <memory>  #include <chrono> - +#include <memory>  using namespace std;  using namespace crepe;  using namespace crepe::api; -int main(){ +int main() {  	dbg_trace(); - -	auto obj = GameObject(0, "name" , "tag", 0); - -	Color color(0,0,0,0); -	//Sprite sprite(std::move(texture), color, {false,false}); - -	Point point = { -		.x = 0, -		.y = 0, -	}; - -	obj.add_component<Transform>(point, 0 ,1); -	obj.add_component<Sprite>(make_unique<Texture>("../asset/texture/img.png"),color, flip_settings{false,false}); - -	auto& sys = crepe::RenderSystem::get_instance(); - -	// scene example +	auto obj = GameObject(0, "name", "tag", 0); +	auto obj1= GameObject(0, "name", "tag", 0); +	auto obj2 = GameObject(0, "name", "tag", 0); + +	auto& mgr = AssetManager::get_instance(); +	// Normal adding components +	{ +		Color color(0, 0, 0, 0); +		Point point = { +			.x = 0, +			.y = 0, +		}; +		obj.add_component<Transform>(point, 1, 1); +		obj.add_component<Sprite>( +			make_shared<Texture>("../asset/texture/img.png"), color, +			flip_settings{true, true}); +	} +	{ +		Color color(0, 0, 0, 0); +		Point point = { +			.x = 500, +			.y = 0, +		}; +		obj.add_component<Transform>(point, 0, 0.1); +		auto img = mgr.cache<Texture>("../asset/texture/second.png");	 +		obj.add_component<Sprite>(img, color, +			flip_settings{true, true}); +	} +	{ +		Color color(0, 0, 0, 0); +		Point point = { +			.x = 800, +			.y = 0, +		}; +		//obj.add_component<Transform>(point, 0, 0.1); +		auto img = mgr.cache<Texture>("../asset/texture/second.png");	 +		obj.add_component<Sprite>(img, color, +			flip_settings{true, true}); +	} + + + + +	auto & sys = crepe::RenderSystem::get_instance();  	auto start = std::chrono::steady_clock::now(); -    while (std::chrono::steady_clock::now() - start < std::chrono::seconds(5)) { +	while (std::chrono::steady_clock::now() - start < std::chrono::seconds(5)) {  		sys.update(); -    } - +	}  } -  |