#include #include struct Position { double x, y; }; struct Velocity { double x, y; }; int main() { flecs::world ecs; // Create a system for Position, Velocity. Systems are like queries (see // queries) with a function that can be ran or scheduled (see pipeline). flecs::system s = ecs.system() .each([](flecs::entity e, Position& p, const Velocity& v) { p.x += v.x; p.y += v.y; std::cerr << e.name() << ": {" << p.x << ", " << p.y << "}\n"; }); // Create a few test entities for a Position, Velocity query ecs.entity("e1") .set({10, 20}) .set({1, 2}); ecs.entity("e2") .set({10, 20}) .set({3, 4}); // This entity will not match as it does not have Position, Velocity ecs.entity("e3") .set({10, 20}); // Run the system s.run(); }