Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        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);
            }
        }