From a016ac2a146ce7c980a2b89d5fe6d079491b790b Mon Sep 17 00:00:00 2001 From: max-001 Date: Tue, 5 Nov 2024 13:34:43 +0100 Subject: Added example --- src/example/CMakeLists.txt | 1 + src/example/ecs.cpp | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 src/example/ecs.cpp diff --git a/src/example/CMakeLists.txt b/src/example/CMakeLists.txt index fea6f60..81df8d1 100644 --- a/src/example/CMakeLists.txt +++ b/src/example/CMakeLists.txt @@ -24,3 +24,4 @@ add_example(rendering) add_example(asset_manager) add_example(particle) add_example(physics) +add_example(ecs) diff --git a/src/example/ecs.cpp b/src/example/ecs.cpp new file mode 100644 index 0000000..e37e8d4 --- /dev/null +++ b/src/example/ecs.cpp @@ -0,0 +1,35 @@ +#include + +#include "../crepe/api/GameObject.h" +#include "../crepe/ComponentManager.h" +#include "../crepe/Metadata.h" +#include "../crepe/api/Transform.h" + +using namespace crepe::api; +using namespace crepe; +using namespace std; + +int main() { + GameObject body(0, "body", "person", Point{0, 0}, 0, 1); + GameObject leg(1, "leg", "person", Point{1, 1}, 0, 1); + GameObject foot(2, "foot", "person", Point{2, 2}, 0, 1); + + foot.set_parent(leg); + leg.set_parent(body); + + ComponentManager & mgr = ComponentManager::get_instance(); + vector> metadata = mgr.get_components_by_type(); + vector> transform = mgr.get_components_by_type(); + + for(auto & m : metadata) { + cout << m.get().name << " " << m.get().tag << " " << m.get().parent << endl; + for(auto & c : m.get().children) { + cout << " " << c << " " << endl; + } + } + for(auto & t : transform) { + cout << t.get().position.x << " " << t.get().position.y << endl; + } + + return 0; +} -- cgit v1.2.3