//GAME1.CS #region Using Statements 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; #endregion namespace Tutorial2 { /// /// This is the main type for your game /// public class Game1 : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics; ContentManager content; Sprite sprite; Sprite sprite2; public Game1() { graphics = new GraphicsDeviceManager(this); content = new ContentManager(Services); sprite = new Sprite(this); sprite.X = 64; sprite.Y = 64; sprite2 = new Sprite(this); sprite2.X = 256; sprite2.Y = 256; this.Components.Add(sprite); this.Components.Add(sprite2); } /// /// 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. /// protected override void Initialize() { // TODO: Add your initialization logic here base.Initialize(); } /// /// Load your graphics content. If loadAllContent is true, you should /// load content from both ResourceManagementMode pools. Otherwise, just /// load ResourceManagementMode.Manual content. /// /// Which type of content to load. protected override void LoadGraphicsContent(bool loadAllContent) { if (loadAllContent) { // TODO: Load any ResourceManagementMode.Automatic content } // TODO: Load any ResourceManagementMode.Manual content } /// /// 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. /// /// Which type of content to unload. protected override void UnloadGraphicsContent(bool unloadAllContent) { if (unloadAllContent == true) { content.Unload(); } } /// /// Allows the game to run logic such as updating the world, /// checking for collisions, gathering input and playing audio. /// /// Provides a snapshot of timing values. 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); } /// /// This is called when the game should draw itself. /// /// Provides a snapshot of timing values. protected override void Draw(GameTime gameTime) { graphics.GraphicsDevice.Clear(Color.CornflowerBlue); // TODO: Add your drawing code here base.Draw(gameTime); } } } //SPRITE.CS #region Using Statements using System; using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Content; #endregion namespace Tutorial2 { /// /// This is a game component that implements IUpdateable. /// public partial class Sprite : Microsoft.Xna.Framework.DrawableGameComponent { private ContentManager manager; private SpriteBatch spriteBatch; private Texture2D texture; private int x, y = 0; public Sprite(Game game) : base(game) { // TODO: Construct any child components here } /// /// Allows the game component to perform any initialization it needs to before starting /// to run. This is where it can query for any required services and load content. /// public override void Initialize() { // TODO: Add your initialization code here base.Initialize(); } protected override void LoadGraphicsContent(bool loadAllContent) { base.LoadGraphicsContent(loadAllContent); if (loadAllContent) { manager = new ContentManager(this.Game.Services); spriteBatch = new SpriteBatch(this.GraphicsDevice); texture = manager.Load("texture1"); } } protected override void UnloadGraphicsContent(bool unloadAllContent) { base.UnloadGraphicsContent(unloadAllContent); if (unloadAllContent) manager.Unload(); spriteBatch.Dispose(); texture.Dispose(); } /// /// Allows the game component to update itself. /// /// Provides a snapshot of timing values. public override void Update(GameTime gameTime) { // TODO: Add your update code here base.Update(gameTime); } public override void Draw(GameTime gameTime) { spriteBatch.Begin(); spriteBatch.Draw(texture, new Rectangle(x, y, 24, 24), Color.White); spriteBatch.End(); base.Draw(gameTime); } public int x { get { return x; } set { x = value; } } public int y { get { return y; } set { y = value; } } } }