Example #1
0
        protected override void CreateScene()
        {
            //Create a 3D camera
            var camera3D = new FixedCamera("Camera3D", new Vector3(2f, 0f, 2.8f), new Vector3(.5f, 0, 0)) { BackgroundColor = backgroundColor };
            EntityManager.Add(camera3D);

            this.CreateCube3D();

            // Create a 2D camera
            var camera2D = new FixedCamera2D("Camera2D") { ClearFlags = ClearFlags.DepthAndStencil }; // Transparent background need this clearFlags.
            EntityManager.Add(camera2D);

            this.CreateSliders();

            this.CreateGrid();

            this.CreateDebugMode();
        }
Example #2
0
        protected override void CreateScene()
        {
            RenderManager.BackgroundColor = Color.CornflowerBlue;
            //RenderManager.DebugLines = true;
            var random = WaveServices.Random;

            var freeCamera = new FreeCamera("FreeCamera", new Vector3(0, 10, -10), Vector3.Zero) { FarPlane = 100 };
            freeCamera.Entity.AddComponent(new CameraFrustum());
            EntityManager.Add(freeCamera);

            var fixedCamera = new FixedCamera("FixedCamera", new Vector3(20, 50, -20), new Vector3(20, 0, 20));

            EntityManager.Add(fixedCamera);

            RenderManager.SetActiveCamera(fixedCamera.Entity);
            RenderManager.SetFrustumCullingCamera(freeCamera.Entity);

            int num = 15;

            for (int i = 0; i < num; i++)
            {
                for (int j = 0; j < num; j++)
                {
                    if (random.NextBool())
                    {
                        Entity cube = CreateCube("Cube" + (j + (i * num)), new Vector3(j * 3, 0, i * 3));
                        EntityManager.Add(cube);
                    }
                    else
                    {
                        Entity sphere = CreateSphere("Sphere" + (j + (i * num)), new Vector3(j * 3, 0, i * 3));
                        EntityManager.Add(sphere);

                    }
                }
            }

            TextBlock textBlock = new TextBlock("Message");
            textBlock.Text = "Press 1 or 2 to change the camera";
            EntityManager.Add(textBlock);

            AddSceneBehavior(new SelectCamera(freeCamera, fixedCamera), SceneBehavior.Order.PreUpdate);
        }
Example #3
0
        protected override void CreateScene()
        {
            // Lights
            DirectionalLight light = new DirectionalLight("light", new Vector3(-10f, 7f, -5f));
            EntityManager.Add(light);
                        
            RenderManager.FrustumCullingEnabled = false;

            // Game Behavior
            GameBehavior gameBehavior = new GameBehavior();

            // Create Player
            this.Player = this.modelFactoryService.CreatePlayer(gameBehavior);
            EntityManager.Add(this.Player);

            // Create Camera
            var camera = new FixedCamera("mainCamera", Vector3.Zero, Vector3.Zero); // Setted in GameBehavior Init
            camera.BackgroundColor = Color.CornflowerBlue;
            this.GameCamera = camera.Entity.FindComponent<Camera3D>();
            EntityManager.Add(camera);

            // Add Scene Behavior
            this.AddSceneBehavior(gameBehavior, SceneBehavior.Order.PostUpdate);
        }
Example #4
0
        protected override void CreateScene()
        {
            var random = WaveServices.Random;

            var freeCamera = new FreeCamera("FreeCamera", new Vector3(0, 10, -10), Vector3.Zero) { FarPlane = 100 };
            freeCamera.BackgroundColor = Color.CornflowerBlue;
            freeCamera.Entity.AddComponent(new CameraFrustum());
            EntityManager.Add(freeCamera);

            var fixedCamera = new FixedCamera("FixedCamera", new Vector3(20, 50, -20), new Vector3(20, 0, 20));
            fixedCamera.Entity.FindComponent<Camera3D>().Viewport = new Viewport(0, 0.6f, 0.4f, 0.4f);
            fixedCamera.ClearFlags = ClearFlags.DepthAndStencil;

            EntityManager.Add(fixedCamera);
            RenderManager.SetFrustumCullingCamera(freeCamera.Entity);

            int num = 15;

            for (int i = 0; i < num; i++)
            {
                for (int j = 0; j < num; j++)
                {
                    if (random.NextBool())
                    {
                        Entity cube = CreateCube("Cube" + (j + (i * num)), new Vector3(j * 3, 0, i * 3));
                        EntityManager.Add(cube);
                    }
                    else
                    {
                        Entity sphere = CreateSphere("Sphere" + (j + (i * num)), new Vector3(j * 3, 0, i * 3));
                        EntityManager.Add(sphere);

                    }
                }
            }
        }
Example #5
0
        private void CreateSecurityCamera(Vector3 position, Vector3 startLookAt, Vector3 endLookAt, TimeSpan timeOffset)
        {
            FixedCamera camera = new FixedCamera("securityCam_" + this.cameras.Count, position, startLookAt)
            {
                // Create RenderTarget to the camera
                RenderTarget = WaveServices.GraphicsDevice.RenderTargets.CreateRenderTarget(350, 256),
                FieldOfView = MathHelper.ToRadians(80),
                NearPlane = 0.01f,
                FarPlane = 15,
            };
            camera.Entity.AddComponent(new SecurityCameraBehavior(startLookAt, endLookAt, timeOffset));

            // This camera will not render the GUI layer
            camera.LayerMask[DefaultLayers.GUI] = false;

            // Register as secondary camera
            this.RenderManager.AddSecondaryCamera(camera.Entity);
            EntityManager.Add(camera);

            this.cameras.Add(camera);
            this.cameraRenderTargets[camera] = camera.RenderTarget;
        }
Example #6
0
 public SelectCamera(FreeCamera freeCamera, FixedCamera fixedCamera)
     : base("SelectCameraBehavior")
 {
     this.freeCamera = freeCamera;
     this.fixedCamera = fixedCamera;
 }