From b6af74511fae1e72d77ee4e1769f299c9cb67305 Mon Sep 17 00:00:00 2001 From: copygirl Date: Tue, 27 Dec 2022 15:03:50 +0100 Subject: [PATCH] Update example in README --- README.md | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 187ca24..28c0f05 100644 --- a/README.md +++ b/README.md @@ -48,8 +48,16 @@ var position = world // The "Position" struct is defined at the bottom of this example. .InitComponent(); -world.New("One").Set(new Position( 0, 0)).Build(); -world.New("Two").Set(new Position(10, 20)).Build(); +// Create an "Entities" parent with two positioned entities inside. +var entities = world.New("Entities").Build(); +entities.NewChild("One").Set(new Position(-5, 0)).Build(); +entities.NewChild("Two").Set(new Position(10, 20)).Build(); + +// Changed my mind: Let's multiply each entity's position by 10. +foreach (var child in entities.GetChildren()) { + ref var pos = ref child.GetRefOrThrow(); + pos = new(pos.X * 10, pos.Y * 10); +} var onUpdate = world.LookupOrThrow("/flecs/pipeline/OnUpdate"); @@ -57,21 +65,21 @@ var onUpdate = world.LookupOrThrow("/flecs/pipeline/OnUpdate"); // the "Position" component downwards by 2 every frame. world.New("FallSystem").Build() .InitSystem(onUpdate, new("Position"), iter => { - var positionSpan = iter.Field(1); + var posColumn = iter.Field(1); for (var i = 0; i < iter.Count; i++) { - ref var position = ref positionSpan[i]; - position = new(position.X, position.Y + 2); + ref var pos = ref posColumn[i]; + pos = new(pos.X, pos.Y + 2); } }); // Create a system that will print out entities' positions. world.New("PrintPositionSystem").Build() .InitSystem(onUpdate, new("[in] Position"), iter => { - var positionSpan = iter.Field(1); + var posColumn = iter.Field(1); for (var i = 0; i < iter.Count; i++) { - var entity = iter.Entity(i); - var position = positionSpan[i]; - Console.WriteLine($"{entity.Name} is at {position}"); + var entity = iter.Entity(i); + var pos = posColumn[i]; + Console.WriteLine($"{entity.Name} is at {pos}"); } });