All pastes #470366 Raw Edit

Roy T. Leaking Buff.

public text v1 · immutable
·published 2007-05-04 07:20 UTC
rendered paste body

#region Using Statements
using System;
using System.Collections;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Storage;
using System.IO;


#endregion

namespace XNA_Tryout
{
    public class Game1 : Microsoft.Xna.Framework.Game
    {
        GraphicsDeviceManager graphics;
        ContentManager content;
        GraphicsDevice device;
        VertexBuffer vb;
        Effect effect;
        VertexPositionNormalTexture[] vertex = new VertexPositionNormalTexture[4];
        ArrayList vertexlist = new ArrayList();
        Vector3 CameraPosition;
        Vector3 CameraTarget;
        Matrix ViewMatrix;
        Matrix ProjectionMatrix;
        Texture2D Texture1;
        int gamespeed = 1;

        public Game1()
        {
            graphics = new GraphicsDeviceManager(this);
            content = new ContentManager(Services);
        }

        protected override void Initialize()
        {
            SetUpXNADevice();

            VertexSetup();
            base.Initialize();
        }


        private void SetUpXNADevice()
        {
            device = graphics.GraphicsDevice;

            graphics.PreferredBackBufferWidth = 600;
            graphics.PreferredBackBufferHeight = 600;
            graphics.IsFullScreen = false;
            graphics.SynchronizeWithVerticalRetrace = false;
            graphics.ApplyChanges();
            Window.Title = "XNA TryOut";

        }
        
        public void VertexSetup()
        {
            vertex[0] = new VertexPositionNormalTexture(new Vector3(0,8,0),new Vector3(0,0,1), new Vector2(0,1));
            vertex[1] = new VertexPositionNormalTexture(new Vector3(8,0,0), new Vector3(0, 0, 1), new Vector2(1, 0));
            vertex[2] = new VertexPositionNormalTexture(new Vector3(-8, 0, 0), new Vector3(0, 0, 1), new Vector2(-1, 0));
            vertex[3] = new VertexPositionNormalTexture(new Vector3(5,-8,0), new Vector3(0,0,1), new Vector2(0,-1));
            
            vb = new VertexBuffer(device, VertexPositionNormalTexture.SizeInBytes * 4, ResourceUsage.WriteOnly);
            vb.SetData(vertex);
            

        }
                
        private void Effects()
        {
            CameraPosition = new Vector3(0, 0, 30);
            CameraTarget = new Vector3(0, 4, 0);
            effect = content.Load<Effect>("Effects");
            ViewMatrix = Matrix.CreateLookAt(CameraPosition, CameraTarget, new Vector3(0, 0, 1));
            ProjectionMatrix = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, this.Window.ClientBounds.Width / this.Window.ClientBounds.Height, 1.0f, 200.0f);

        }

        public void ProcessKeyboard(float speed)
        {

            KeyboardState keys = Keyboard.GetState();

            if (keys.IsKeyDown(Keys.Escape))
            {
                Exit();
            }

            if (keys.IsKeyDown(Keys.F))
            {
                graphics.ToggleFullScreen();

            }


        }
        
        protected override void LoadGraphicsContent(bool loadAllContent)
        {
            if (loadAllContent)
            {
                Effects();
                Texture1 = content.Load<Texture2D>("streettexture");

            }

            
        }

        protected override void UnloadGraphicsContent(bool unloadAllContent)
        {
            if (unloadAllContent == true)
            {
                content.Unload();
            }
        }
     
        protected override void Update(GameTime gameTime)
        {

           ProcessKeyboard(gameTime.ElapsedGameTime.Milliseconds / 500.0f * gamespeed);
            base.Update(gameTime);
        }
      
        protected override void Draw(GameTime gameTime)
        {
            device.Clear(ClearOptions.Target | ClearOptions.DepthBuffer, Color.Black, 1.0f, 0);
            //CULL MODE STAAT UIT!
            device.RenderState.CullMode = CullMode.None;
            
            effect.CurrentTechnique = effect.Techniques["Textured"];
            effect.Parameters["xViewProjection"].SetValue(ViewMatrix * ProjectionMatrix);
            effect.Parameters["xColoredTexture"].SetValue(Texture1);
            
            effect.Begin();
            foreach (EffectPass pass in effect.CurrentTechnique.Passes)
            {
                pass.Begin();
                device.VertexDeclaration = new VertexDeclaration(device, VertexPositionNormalTexture.VertexElements);
                device.Vertices[0].SetSource(vb, 0, VertexPositionNormalTexture.SizeInBytes);
                
                device.DrawPrimitives(PrimitiveType.TriangleStrip, 0, 4);

                //device.DrawPrimitives(PrimitiveType.TriangleList,0,3);
                pass.End();
            }

            effect.End();
            

            base.Draw(gameTime);
        }
    }
}