#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; using FlatRedBall; #endregion namespace Collision { /// /// This is the main type for your game /// public class Game1 : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics; ContentManager content; Sprite sprite1 = new Sprite(); Sprite sprite2 = new Sprite(); private FlatRedBall.Math.Geometry.AxisAlignedRectangle rec1; private FlatRedBall.Math.Geometry.AxisAlignedRectangle rec2; public Game1() { graphics = new GraphicsDeviceManager(this); content = new ContentManager(Services); } /// /// 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() { FlatRedBallServices.InitializeFlatRedBall(this, this.graphics); Sprite sprite1 = SpriteManager.AddSprite("redball.bmp"); Sprite sprite2 = SpriteManager.AddSprite("redball.bmp"); rec1 = FlatRedBall.Math.Geometry.ShapeManager.AddAxisAlignedRectangle(); rec1.ScaleX = sprite1.ScaleX; rec1.ScaleY = sprite1.ScaleY; sprite1.SetCollision(rec1); rec2 = FlatRedBall.Math.Geometry.ShapeManager.AddAxisAlignedRectangle(); rec2.ScaleX = sprite2.ScaleX; rec2.ScaleY = sprite2.ScaleY; sprite2.SetCollision(rec2); sprite1.X = -15; sprite2.X = 15; sprite1.Z = 0; sprite2.Z = 0; sprite1.XVelocity = 2; sprite2.XVelocity = -2; 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) { // TODO: Unload any ResourceManagementMode.Automatic content content.Unload(); } // TODO: Unload any ResourceManagementMode.Manual content } /// /// 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) { if (sprite1.CollideAgainst(sprite2)) { sprite1.RotationXVelocity = 2; } else { sprite1.RotationXVelocity = 0; } FlatRedBallServices.Update(gameTime); base.Update(gameTime); } /// /// This is called when the game should draw itself. /// /// Provides a snapshot of timing values. protected override void Draw(GameTime gameTime) { FlatRedBallServices.Draw(); base.Draw(gameTime); } } }