+++ /dev/null
-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
- /// Base class for all Characters, \r
- /// includes: basic position information, \r
- /// character Texture\r
- /// health\r
- /// damage\r
- /// </summary>\r
- public class Character\r
- {\r
- //Member Variables\r
- Map theMap;\r
- int movementSpeed;\r
- int gridX;\r
- int gridY;\r
- Texture2D charModel;\r
- int health;\r
- int damage;\r
- int range;\r
- bool isMoving;\r
- int pixelX;\r
- int pixelY;\r
-\r
- /// <summary>\r
- /// Call this method to give the game a chance to load its content.\r
- /// </summary>\r
- /// <param name="_currentMap">The map that this character will interact with</param>\r
- /// <param name="_charModel">The model for this character</param>\r
- /// <param name="_baseMovementSpeed">How fast the character moves</param>\r
- /// <param name="_baseHealth">The starting health of the character</param>\r
- /// <param name="_baseDamage">The base damage of the character</param>\r
- /// <param name="_baseRange">The range of the character attack</param>\r
- public Character( Map _currentMap,\r
- Texture2D _charModel,\r
- int _baseMovementSpeed,\r
- int _baseHealth,\r
- int _baseDamage,\r
- int _baseRange)\r
- {\r
- theMap = _currentMap;\r
- movementSpeed = _baseMovementSpeed;\r
- gridX = 10; //should be included in the map as a designated spawn point to begin map\r
- gridY = 10; // \r
- charModel = _charModel;\r
- health = _baseHealth;\r
- damage = _baseDamage;\r
- range = _baseRange;\r
- isMoving = false;\r
- }\r
-\r
- public void Draw(SpriteBatch spriteBatch)\r
- {\r
- spriteBatch.Draw(charModel, new Vector2(pixelX, 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 int Health { get { return health; } set { health = value; } }\r
- public Map TheMap { get { return theMap; } }\r
-\r
- /// <summary>\r
- /// Get if player is Moveing - Getter only\r
- /// </summary>\r
- public bool IsMoving\r
- {\r
- get { return isMoving; }\r
- }\r
- }\r
-\r
- /// <summary>\r
- /// \r
- /// </summary>\r
- public class Player : Character\r
- {\r
- //Member Variables\r
-\r
- public Player( Map _currentMap, \r
- Texture2D _charModel,\r
- int _baseMovementSpeed,\r
- int _baseHealth,\r
- int _baseDamage, \r
- int _baseRange) \r
- : base(_currentMap,_charModel,_baseMovementSpeed, _baseHealth, _baseDamage, _baseRange)\r
- {\r
- }\r
-\r
- public void Update()\r
- {\r
-\r
-\r
- }\r
-\r
- /// <summary>\r
- /// Updates the players position in the current window, the player is kept centered\r
- /// in the window when possible. When the edge of the map is reached by one or more\r
- /// of the edges of the window the player will then move towards the edges of the\r
- /// window.\r
- /// </summary>\r
- /// <param name="ScreenWidth">Used to know how wide the current window is</param>\r
- /// <param name="ScreenHeight">Used to know how tall the current window is</param>\r
- public void updatePlayerScreenPosition(int ScreenWidth, int ScreenHeight)\r
- {\r
- // if left edge of map has been reached by screen\r
- if (GridX * TheMap.GridToPixelRatio < ScreenWidth / 2)\r
- {\r
- PixelX = GridX * TheMap.GridToPixelRatio;\r
- }\r
- // if right edge of TheMap has been reached by screen\r
- else if ((TheMap.MaxGridX - GridX) * TheMap.GridToPixelRatio < ScreenWidth / 2)\r
- {\r
- PixelX = ScreenWidth - (TheMap.MaxGridX - GridX) * TheMap.GridToPixelRatio;\r
- }\r
- // screen not touching left or right edge of map so center player horazontally on screen\r
- else\r
- {\r
- PixelX = ScreenWidth / 2;\r
- }\r
-\r
- // if top edge of map is reached by screen edge\r
- if (GridY * TheMap.GridToPixelRatio < ScreenHeight / 2)\r
- {\r
- PixelY = GridY * TheMap.GridToPixelRatio;\r
- }\r
- // if bottom edge of map has been reached by screen\r
- else if ((TheMap.MaxGridY - GridY) * TheMap.GridToPixelRatio < ScreenHeight / 2)\r
- {\r
- PixelY = ScreenHeight - (TheMap.MaxGridY - GridY) * TheMap.GridToPixelRatio;\r
- } \r
- // screen not touching top or bottom edge of map so center player verticaly on screen\r
- else\r
- {\r
- PixelY = ScreenHeight / 2;\r
- }\r
- }\r
-\r
- /// <summary>\r
- /// Moves the current player being controlled based on a given set of key presses.\r
- /// The player can only move one Grid space per movePlayer call. Thus this method\r
- /// is made to be called ever update. The player will only move if the Grid space\r
- /// that is being moved to is an open space.\r
- /// </summary>\r
- /// <param name="keysPressed">A general list of keys that are pressed. Other keys can be included but only direction keys will be used</param>\r
- public void movePlayer(List<Keys> keysPressed)\r
- {\r
- // move upleft\r
- keysPressed.Contains<Keys>(Keys.Left);\r
- if (keysPressed.Contains<Keys>(Keys.Up) && keysPressed.Contains<Keys>(Keys.Left) && TheMap.isOpenSquare(GridX - 1, GridY - 1))\r
- {\r
- GridX -= 1;\r
- GridY -= 1;\r
- }\r
- // move upright\r
- else if (keysPressed.Contains<Keys>(Keys.Up) && keysPressed.Contains<Keys>(Keys.Right) && TheMap.isOpenSquare(GridX + 1, GridY - 1))\r
- {\r
- GridX += 1;\r
- GridY -= 1;\r
- }\r
- // move downleft\r
- else if (keysPressed.Contains<Keys>(Keys.Down) && keysPressed.Contains<Keys>(Keys.Left) && TheMap.isOpenSquare(GridX - 1, GridY + 1))\r
- {\r
- GridX -= 1;\r
- GridY += 1;\r
- }\r
- // move downright\r
- else if (keysPressed.Contains<Keys>(Keys.Down) && keysPressed.Contains<Keys>(Keys.Right) && TheMap.isOpenSquare(GridX + 1, GridY + 1))\r
- {\r
- GridX += 1;\r
- GridY += 1;\r
- }\r
- // move up\r
- else if (keysPressed.Contains<Keys>(Keys.Up) && TheMap.isOpenSquare(GridX, GridY - 1))\r
- {\r
- GridY -= 1;\r
- }\r
- // move down\r
- else if (keysPressed.Contains<Keys>(Keys.Down) && TheMap.isOpenSquare(GridX, GridY + 1))\r
- {\r
- GridY += 1;\r
- }\r
- // move left\r
- else if (keysPressed.Contains<Keys>(Keys.Left) && TheMap.isOpenSquare(GridX - 1, GridY))\r
- {\r
- GridX -= 1;\r
- }\r
- // move right\r
- else if (keysPressed.Contains<Keys>(Keys.Right) && TheMap.isOpenSquare(GridX + 1, GridY))\r
- {\r
- GridX += 1;\r
- }\r
- }\r
- }\r
-\r
- /// <summary>\r
- /// \r
- /// </summary>\r
- public class Monster : Character\r
- {\r
- //Member Variables\r
- public Monster( Map _currentMap, \r
- Texture2D _charModel,\r
- int _baseMovementSpeed,\r
- int _baseHealth,\r
- int _baseDamage, \r
- int _baseRange) \r
- : base(_currentMap,_charModel,_baseMovementSpeed, _baseHealth, _baseDamage, _baseRange)\r
- {\r
-\r
- }\r
-\r
- public void Update()\r
- {\r
-\r
- }\r
- }\r
- /*\r
- //this is for testing purposes only!\r
- public class Map\r
- {\r
- int gridToPixelRatio;\r
-\r
- public Map()\r
- {\r
- gridToPixelRatio = 10;\r
- }\r
-\r
- public int MaxGridX\r
- {\r
- get { return 100; }\r
- }\r
- public int MaxGridY\r
- {\r
- get { return 100; }\r
- }\r
-\r
- public int GridToPixelRatio\r
- {\r
- get { return gridToPixelRatio; }\r
- }\r
-\r
- public bool isOpenSquare(int GridX, int GridY)\r
- {\r
- return true;\r
- }\r
-\r
-\r
- }\r
- */\r
-}
\ No newline at end of file