Beispiel #1
0
        protected override void CreateScene()
        {
            this.Load(WaveContent.Scenes.MyScene);

            this.CreateLayers();

            // Add asteroidfield
            var asteroidField = new AsteroidFieldDecorator("asteroidField", new Vector3(2000, 2000, 0));

            this.EntityManager.Add(asteroidField);
            WaveServices.SoundPlayer.GetSceneSoundBank(this).MaxConcurrentSounds = 30;
        }
Beispiel #2
0
        /// <summary>
        /// Create scene environment:
        /// - Projectiles, Explosions
        /// - Asteroid field,
        /// - Starfield
        /// </summary>
        private void CreateEnvironment()
        {
            // Projectiles
            Entity blueProjectiles = new Entity("Projectiles")
                                     .AddComponent(new ProjectileManager())
                                     .AddComponent(new ProjectilesRenderer())
                                     .AddComponent(new MaterialsMap(new BasicMaterial("Content/Textures/Blaster.png", DefaultLayers.Additive)));

            this.EntityManager.Add(blueProjectiles);

            // Explosion
            ExplosionDecorator explosion = new ExplosionDecorator("explosion", 2556);

            explosion.Transform3D.Position = new Vector3(-1109.993f, 0.437f, -3785.457f);
            this.EntityManager.Add(explosion.Entity);

            // Add asteroidfield
            var asteroidField = new AsteroidFieldDecorator("asteroidField", new Vector3(2000, 2000, 0));

            this.EntityManager.Add(asteroidField);

            // Add starfield
            var starField = new StarfieldDecorator("starfield");

            this.EntityManager.Add(starField);

            Dictionary <string, Material> materials = new Dictionary <string, Material>()
            {
                {
                    "Planet",
                    new BasicMaterial("Content/Textures/planet.png", typeof(PlanetLayer))
                },
                {
                    "BackSun",
                    new BasicMaterial("Content/Textures/StarShine.png", typeof(StarfieldLayer))
                    {
                        DiffuseColor = Color.White * 0.8f
                    }
                },
                {
                    "FrontSun",
                    new BasicMaterial("Content/Textures/StarShine.png", DefaultLayers.Additive)
                    {
                        DiffuseColor = Color.White * 0.4f
                    }
                }
            };

            // Add background planet
            var planet = new Entity("planet")
                         .AddComponent(new Transform3D())
                         .AddComponent(new Model("Content/Models/Planet.FBX"))
                         .AddComponent(new ModelRenderer())
                         .AddComponent(new MaterialsMap(materials))
                         .AddComponent(new FollowCameraBehavior())
            ;

            this.EntityManager.Add(planet);

            PointLight light = new PointLight("light", new Vector3(-30000, 17000, -15000))
            {
                Attenuation = 1900000,
                IsVisible   = true,
                Color       = Color.White
            };

            this.EntityManager.Add(light);
        }