Ejemplo n.º 1
0
        protected override void Draw(GameTime gameTime)
        {
            device.DepthStencilState = DepthStencilState.Default;


            DrawShadow();
            if (enviro.detailWater)
            {
                if (!enviro.underWater)
                {
                    water.DrawRefractionMap(2);
                    water.DrawReflectionMap(1);
                }
                else
                {
                    water.DrawRefractionMap(1);
                    water.DrawReflectionMap(2);
                }
            }


            device.Clear(ClearOptions.Target | ClearOptions.DepthBuffer, Color.White, 1.0f, 0);
            bloom.BeginDraw();

            sky.Draw(cam.cameraPosition + new Vector3(0, -100, 0), cam.viewMatrix, 0);


            device.BlendState = BlendState.NonPremultiplied;
            moon.Draw(cam.viewMatrix);

            device.DepthStencilState = DepthStencilState.DepthRead;
            foreach (PointSprites_Single x in clouds)
            {
                x.Draw(cam.viewMatrix);
            }

            terrain.Draw(cam.viewMatrix, 0);
            water.Draw();

            if (enviro.billboardedGrass)
            {
                bbgrass.Draw(0, cam.viewMatrix);
            }
            else
            {
                grass.Draw(0, cam.viewMatrix);
            }


            car.Draw(cam.viewMatrix, 0);
            human.Draw(cam.viewMatrix, 0);



            if (enviro.enableSnow)
            {
                snow.Draw(cam.viewMatrix);
            }
            if (enviro.enableRain)
            {
                rain.Draw(cam.viewMatrix);
            }


            base.Draw(gameTime);
            spriteBatch.Begin();
            text.Write(fps.frameRate + " FPS\nCampos: " + cam.cameraPosition
                       + "\nDepth Bias: " + enviro.depthbias
                       + "\nPress ENTER to bring up menu"
                       + "\nHold SHIFT for faster camera"
                       , new Vector2(), Color.Yellow);

            controls.Draw(spriteBatch);
            spriteBatch.End();

            fps.Count();
        }