Recettes pratiques
Monde minimal
Section intitulée « Monde minimal »ecs_init();ecs_entity_t entity = ecs_new();ecs_kill(entity);ecs_fini();ecs::init();auto entity = ecs::entity::create();entity.kill();ecs::fini();Boucle avec le temps
Section intitulée « Boucle avec le temps »ecs_set_resource(Time, { .dt = 1.0f / 60.0f });ecs_progress();ecs::resource_handle<Time>().set(Time{ .dt = 1.0f / 60.0f });ecs::progress();Parent et enfant
Section intitulée « Parent et enfant »ecs_relate(child, ChildOf, parent);child.child_of(parent);Composant optionnel
Section intitulée « Composant optionnel »ecs_query_each(it, i, ecs_in(Position), ecs_in_optional(Health)) { Position *position = ecs_field(&it, 0); Health *health = ecs_field(&it, 1); if (health != NULL) position[i].x += health[i].value;}ecs::query().each([](Position &position, ecs::optional<Health> health) { if (health) position.x += health->value;});Réagir à une modification
Section intitulée « Réagir à une modification »ecs_observer({ .on = EcsOnSet, .query.components = { ecs_in(Position) }, .callback = on_position_set,});ecs::observe<ecs::OnSet>().each([](const Position &position) { on_position_set(position);});