/// <summary> /// Creates organism from DNA /// </summary> /// <returns>Organism created from DNA</returns> public OrganismEntity CreateOrganism(Organisms.DNA dna, Physics.Common.Vector2 position = default(Physics.Common.Vector2)) { OrganismEntity organism = CreateEntity <OrganismEntity>(); organism.Organism = Simulation.CreateOrganism(dna, position); return(organism); }
private void PreparePhysicsTestScene() { // Organism building var dna = new Organisms.DNA(); dna.Root = new Organisms.DNA.Organ() { Radius = 1 }; var left = new Organisms.DNA.Organ() { RadialOrientation = -90, Radius = 1 }; var right = new Organisms.DNA.Organ() { RadialOrientation = 90, Radius = 1 }; dna.Root.Children.Add(left); dna.Root.Children.Add(right); dna.Muscles.Add(new Organisms.DNA.Muscle() { From = dna.Root, To = left, ContractionFactor = 0.5f }); dna.Muscles.Add(new Organisms.DNA.Muscle() { From = dna.Root, To = right, ContractionFactor = 0.5f }); World.CreateOrganism(dna); World.PhysicalWorld.AddController(new Engine.Controllers.SeaCurrentsController() { Direction = new Physics.Common.Vector2(1, 0), Position = new Physics.Common.Vector2(0, 0), Radius = 4, Strength = 2 }); World.PhysicalWorld.AddController(new Engine.Controllers.SeaCurrentsController() { Direction = new Physics.Common.Vector2(-1, 0), Position = new Physics.Common.Vector2(6, 0), Radius = 4, Strength = 2 }); var food = World.CreateEntity <Food>(); food.Position = new Vector2(400, 200); for (int i = 0; i < 30; i++) { var bubble = World.CreateDecal <Bubble>(); bubble.Position = new Vector2(Random.Next(0, 700), Random.Next(0, 500)); bubble.Size = (float)(Random.NextDouble() * 0.8 + 0.2); } }