All pastes #387329 Raw Edit

Mine

public text v1 · immutable
·published 2007-03-09 07:55 UTC
rendered paste body
using System;
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 xna_Fegelein.Sources.ServiceProviders;
using xna_Fegelein.Sources.GameComponents;
using xna_Fegelein.Sources.Utilities;

namespace xna_Fegelein
{
    /// <summary>
    /// This is the main type for your game
    /// </summary>
    public class Game1 : Game, IContentManagerService
    {
        /// <summary>
        /// Private members
        /// </summary>
        private GraphicsDeviceManager graphics;
        private ContentManager content;

        /// <summary>
        /// Properties
        /// </summary>
        public ContentManager ContentManager
        {
            get
            {
                return this.content;
            }
        }

        /// <summary>
        /// Constructor
        /// </summary>
        public Game1()
        {
            // Init the graphics device and content pipeline
            this.graphics = new GraphicsDeviceManager(this);
            this.content = new ContentManager(Services);

            // Init the camera manager
            CameraManager cameraManager = new CameraManager(this);
            this.Components.Add(cameraManager);

            // Init the input component
            InputManager inputManager = new InputManager(this);
            this.Components.Add(inputManager);

            // Init the measureFPS component
            MeasureFPS measureFPS = new MeasureFPS(this);
            // this.Components.Add(measureFPS);

            // Init the MySpaceWarShip component
            MySpaceWarShip mySpaceWarShip = new MySpaceWarShip(this);
            // this.Components.Add(mySpaceWarShip);

            // Init the DrawPrimitives component
            DrawPrimitives drawPrimitives = new DrawPrimitives(this);
            // this.Components.Add(drawPrimitives);

            DrawTriangle drawTriangle = new DrawTriangle(this, 1000);
            //this.Components.Add(drawTriangle);

            DrawTorus drawTorus = new DrawTorus(this, 1000, 500, 25, 25);
            this.Components.Add(drawTorus);

            Grid gridComponent = new Grid(this, 16, 1000, GridLayout.DirectionZ, Color.Yellow);
            //this.Components.Add(gridComponent);

            // Add the contentManager service
            this.Services.AddService(typeof(IContentManagerService), this);
        }

        /// <summary>
        /// Method that handles the update event of the FPS counter,
        /// updates the window title to display the number of frames
        /// </summary>
        /// <param name="totalFrames">integer number of total frames</param>
        private void component_OnUpdate(int totalFrames)
        {
            this.Window.Title = String.Format("FPS: {0}", totalFrames);
        }


        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>
        protected override void Initialize()
        {
            // TODO: Add your initialization logic here

            base.Initialize();
        }


        /// <summary>
        /// Load your graphics content.  If loadAllContent is true, you should
        /// load content from both ResourceManagementMode pools.  Otherwise, just
        /// load ResourceManagementMode.Manual content.
        /// </summary>
        /// <param name="loadAllContent">Which type of content to load.</param>
        protected override void LoadGraphicsContent(bool loadAllContent)
        {
            if (loadAllContent)
            {
            }

            // TODO: Load any ResourceManagementMode.Manual content
        }


        /// <summary>
        /// Unload your graphics content.  If unloadAllContent is true, you should
        /// unload content from both ResourceManagementMode pools.  Otherwise, just
        /// unload ResourceManagementMode.Manual content.  Manual content will get
        /// Disposed by the GraphicsDevice during a Reset.
        /// </summary>
        /// <param name="unloadAllContent">Which type of content to unload.</param>
        protected override void UnloadGraphicsContent(bool unloadAllContent)
        {
            if (unloadAllContent == true)
            {
                this.content.Unload();
            }
        }


        /// <summary>
        /// Allows the game to run logic such as updating the world,
        /// checking for collisions, gathering input and playing audio.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Update(GameTime gameTime)
        {
            // Allows the default game to exit on Xbox 360 and Windows
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
                this.Exit();

            // TODO: Add your update logic here

            base.Update(gameTime);
        }


        /// <summary>
        /// This is called when the game should draw itself.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Draw(GameTime gameTime)
        {
            graphics.GraphicsDevice.Clear(Color.CornflowerBlue);

            base.Draw(gameTime);
        }
    }
}