\r
namespace CarFire\r
{\r
+ /// <summary>\r
+ /// This class is responsible for controlling what draws to the screen when the game is running.\r
+ /// </summary>\r
public class Display\r
{\r
List<Projectile> mProjectiles = new List<Projectile>();\r
List<Character> mCharacters = new List<Character>();\r
Map mMap;\r
+ int currentCenterX = 5;\r
+ int currentCenterY = 5;\r
public Display()\r
{\r
/*\r
Texture2D everything = contentManager.Load<Texture2D>("cs");\r
mMap = contentManager.Load<Map>("Maps/stable");\r
Map.DefaultTile = contentManager.Load<Texture2D>("default");\r
- mMap.CenterCell = new Vector2(5,5);\r
- //List<object> entities = mMap.GetAllEntities();\r
+ mMap.CenterCell = new Vector2(currentCenterX,currentCenterY);\r
+ //Debugging... Spawn eight projectiles.\r
+ //Diagonals\r
mProjectiles.Add(new Projectile(mMap, everything, new Vector2(5,5), 10, 10, 300, 300));\r
+ mProjectiles.Add(new Projectile(mMap, everything, new Vector2(-5, 5), 10, 10, 300, 300));\r
+ mProjectiles.Add(new Projectile(mMap, everything, new Vector2(5, -5), 10, 10, 300, 300));\r
+ mProjectiles.Add(new Projectile(mMap, everything, new Vector2(-5, -5), 10, 10, 300, 300));\r
+ //Vertical and horizontal\r
+ mProjectiles.Add(new Projectile(mMap, everything, new Vector2(0, 5), 10, 10, 300, 300));\r
+ mProjectiles.Add(new Projectile(mMap, everything, new Vector2(-5, 0), 10, 10, 300, 300));\r
+ mProjectiles.Add(new Projectile(mMap, everything, new Vector2(5, 0), 10, 10, 300, 300));\r
+ mProjectiles.Add(new Projectile(mMap, everything, new Vector2(0, -5), 10, 10, 300, 300));\r
+\r
// TODO: use this.Content to load your game content here\r
}\r
\r
/// <param name="gameTime">Provides a snapshot of timing values.</param>\r
public void Update(TimeSpan timespan)\r
{\r
- \r
+ mMap.CenterCell = new Vector2(currentCenterX, currentCenterY);\r
foreach (Projectile projectile in mProjectiles)\r
{\r
projectile.Update(timespan);\r
/// <summary>\r
/// This is called when the game should draw itself.\r
/// </summary>\r
- /// <param name="gameTime">Provides a snapshot of timing values.</param>\r
+ /// <param name="spriteBatch">Used to draw with</param>\r
public void Draw(SpriteBatch spriteBatch)\r
{\r
mMap.Draw(spriteBatch);\r
-<<<<<<< .mine\r
using System;\r
using System.Collections.Generic;\r
using System.Linq;\r
/// <param name="topLeftY">The map Y pixel position of the topLeft of the display</param>\r
public void Draw(SpriteBatch spriteBatch)\r
{\r
- Console.WriteLine(gridX + " " + gridY);\r
- Console.WriteLine(theMap.GetRectangleFromCoordinates(new Vector2(gridX, gridY)));\r
+ //Console.WriteLine(gridX + " " + gridY);\r
+ //Console.WriteLine(theMap.GetRectangleFromCoordinates(new Vector2(gridX, gridY)));\r
Rectangle position = theMap.GetRectangleFromCoordinates(new Vector2(gridX, gridY));\r
spriteBatch.Draw(projectileModel, position, Color.White);\r
- //spriteBatch.Draw(projectileModel, new Vector2(40, 40), Color.White);\r
+ //Rectangle position2 = new Rectangle(pixelX-30, pixelY-30, 60, 60);\r
+ //spriteBatch.Draw(projectileModel, position2, Color.White);\r
}\r
\r
/// <summary>\r
public int Damage { get { return damage; } set { damage = value; } }\r
}\r
}\r
-=======\r
-using System;\r
-using System.Collections.Generic;\r
-using System.Linq;\r
-using System.Text;\r
-using Microsoft.Xna.Framework;\r
-using Microsoft.Xna.Framework.Content;\r
-using Microsoft.Xna.Framework.Graphics;\r
-using Microsoft.Xna.Framework.Input;\r
-\r
-namespace CarFire\r
-{\r
- /// <summary>\r
- /// This class represents a projectile object that will be spawned whenever a player or a monster fires.\r
- /// </summary>\r
- public class Projectile\r
- {\r
- //Member Variables\r
- Map theMap;\r
- Vector2 velocity;\r
- Texture2D projectileModel;\r
- int damage;\r
- int gridX;\r
- int gridY;\r
- //The pixel position should be the pixel position on the map. When a projectile is drawn\r
- //these will have to be transformed to the coordinate system that the drawable screen is using.\r
- int pixelX;\r
- int pixelY;\r
- \r
- /// <summary>\r
- /// The Constructor for a projectile object.\r
- /// </summary>\r
- /// <param name="_currentMap">The map that this character will interact with</param>\r
- /// <param name="_projectileModel">The model for this projectile</param>\r
- /// <param name="_velocity">How fast the projectile moves</param>\r
- /// <param name="_gridX">The starting X position in the map grid</param>\r
- /// <param name="_gridY">The starting Y position in the map grid</param>\r
- /// <param name="_pixelX">The absolute X pixel position on the map</param>\r
- /// <param name="_pixelY"> The absolute Y pixel position on the map</param>\r
- public Projectile(Map _currentMap,\r
- Texture2D _projectileModel,\r
- Vector2 _velocity,\r
- int _gridX,\r
- int _gridY,\r
- int _pixelX,\r
- int _pixelY)\r
- {\r
- theMap = _currentMap;\r
- projectileModel = _projectileModel;\r
- velocity = _velocity;\r
- gridX = _gridX;\r
- gridY = _gridY;\r
- pixelX = _pixelX;\r
- pixelY = _pixelY;\r
- }\r
- public void Update()\r
- {\r
- //See if something moved onto this projectile.\r
- if(theMap.IsCellOpen(gridX, gridY))\r
- {\r
- //theMap.damageSquare(gridX, gridY, damage);\r
- }\r
- //If the projectile will be moving to a new grid position we need to check to see if it is occupied.\r
- /*\r
- if ((int)((pixelX + velocity.X) / theMap.gridToPixelRatio) != gridX || (int)((pixelY + velocity.Y) / Map.gridToPixelRatio) != gridY)\r
- {\r
- bool open = theMap.IsCellOpen((pixelX + velocity.X) / theMap.gridToPixelRatio, (pixelY + velocity.Y) / Map.gridToPixelRatio);\r
- //If open just move this projectile there\r
- //***Map doesn't need to know that this projectile is there because players/monsters are allowed\r
- // to move into the path of projectiles.\r
- if (open)\r
- {\r
- pixelX += (int)velocity.X;\r
- pixelY += (int)velocity.Y;\r
- gridX = pixelX / theMap.gridToPixelRatio;\r
- gridY = pixelY / theMap.gridToPixelRatio;\r
- }\r
- //If the square isn't open then just damage whatever is there\r
- //TODO: A projectile must be deleted after this happens\r
- else\r
- {\r
- //theMap.damageSquare(gridX, gridY, damage);\r
- }\r
- }\r
- */\r
- //If it is not moving grid positions just increment pixelX and pixelY\r
- else\r
- {\r
- pixelX += (int)velocity.X;\r
- pixelY += (int)velocity.Y;\r
- }\r
- \r
- }\r
- /// <summary>\r
- /// This method will draw a projectile to the screen\r
- /// </summary>\r
- /// <param name="spriteBatch"></param>\r
- /// <param name="topLeftX">The map X pixel position of the topLeft of the display</param>\r
- /// <param name="topLeftY">The map Y pixel position of the topLeft of the display</param>\r
- public void Draw(SpriteBatch spriteBatch, int topLeftX, int topLeftY)\r
- {\r
- spriteBatch.Draw(projectileModel, new Vector2(topLeftX - pixelX, topLeftY - pixelY), null, Color.White, 0, new Vector2(0f, 0f), 1f, SpriteEffects.None, 0);\r
- }\r
-\r
- /// <summary>\r
- /// Basic getters and setters\r
- /// </summary>\r
- public int GridX { get { return gridX; } set { gridX = value; } }\r
- public int GridY { get { return gridY; } set { gridY = value; } }\r
- public int PixelX { get { return pixelX; } set { pixelX = value; } }\r
- public int PixelY { get { return pixelY; } set { pixelY = value; } }\r
- public Map TheMap { get { return theMap; } set { theMap = value; } }\r
- public int Damage { get { return damage; } set { damage = value; } }\r
- }\r
-}\r
->>>>>>> .r83\r