--- /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.Graphics;\r
+using Microsoft.Xna.Framework.Content;\r
+\r
+namespace CarFire\r
+{\r
+ class AnimateMelee\r
+ {\r
+\r
+ //member variables\r
+ private AnimatedTexture SpriteTexture;\r
+ string[] fileNames = new string[] { "graphics/meleeAttack", "graphics/meleeDying", \r
+ "graphics/meleeExplosion", "graphics/meleeStanding", "graphics/meleeWalking" };\r
+ private ContentManager contentManager;\r
+ //private GraphicsDeviceManager graphics;\r
+ //private SpriteBatch spriteBatch;\r
+\r
+ private string ph;\r
+ private Vector2 position;\r
+ private SpriteBatch character;\r
+\r
+ //constructor(s)\r
+ public AnimateMelee(ContentManager content)\r
+ {\r
+ SpriteTexture = new AnimatedTexture(Vector2.Zero, 0, 1.0f, 0.5f);\r
+ contentManager = content;\r
+ ph = fileNames[3];\r
+ position = Vector2.Zero;\r
+ }\r
+\r
+ //methods\r
+\r
+ public void AttackLeft(SpriteBatch spriteBatch)\r
+ {\r
+ ph = fileNames[0];\r
+ //graphics = graphicsDeviceManager;\r
+ //this.spriteBatch = spriteBatch;\r
+ //spriteBatch.\r
+\r
+ character = new SpriteBatch(spriteBatch.GraphicsDevice);\r
+ Animate();\r
+\r
+\r
+ // SpriteTexture.Load(graphics.GraphicsDevice, contentManager, "fileNames[0]", 8, 12, true, 1);\r
+ }\r
+\r
+ public void Animate()\r
+ {\r
+ //character = new SpriteBatch(graphics.GraphicsDevice);\r
+ // "character" is the name of the sprite asset in the project.\r
+ Console.WriteLine(ph);\r
+ SpriteTexture.Load(character.GraphicsDevice, contentManager, ph, 8, 12, true, 1);\r
+ //viewport = graphics.GraphicsDevice.Viewport;\r
+ position = new Vector2(0, 0);//viewport.Width / 2, 0);//viewport.Height / 2f);\r
+\r
+ character.Begin();\r
+ SpriteTexture.DrawFrame(character, position);\r
+ character.End();\r
+ }\r
+\r
+ }\r
+}\r
--- /dev/null
+using System;\r
+using System.Collections.Generic;\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
+ public class AnimatedTexture\r
+ {\r
+ private int framecount;\r
+ private Texture2D myTexture;\r
+ private float TimePerFrame;\r
+ private int Frame, Row;\r
+ private float TotalElapsed;\r
+ private bool Paused, loop;\r
+\r
+ public float Rotation, Scale, Depth;\r
+ public Vector2 Origin;\r
+\r
+ //rotation is pretty much always zero, scale determines size, depth is 0.5f\r
+ public AnimatedTexture(Vector2 Origin, float Rotation, float Scale, float Depth)\r
+ {\r
+ this.Origin = Origin;\r
+ this.Rotation = Rotation;\r
+ this.Scale = Scale;\r
+ this.Depth = Depth;\r
+ }\r
+ //asset is the file name w/o the extension, framecount is the # of frames per row, framespersec determines speed of the animation\r
+ //loop will determine if the animation repeats, row chooses which row of the animation to play starting with 0\r
+ public void Load(GraphicsDevice device, ContentManager content, string asset, int FrameCount, int FramesPerSec, bool Loop, int row)\r
+ {\r
+ framecount = FrameCount;\r
+ myTexture = content.Load<Texture2D>(asset);\r
+ TimePerFrame = (float)1 / FramesPerSec;\r
+ Frame = 0;\r
+ TotalElapsed = 0;\r
+ Paused = false;\r
+ loop = Loop;\r
+ Row = row;\r
+ }\r
+\r
+ // class AnimatedTexture\r
+ public void UpdateFrame(float elapsed)\r
+ {\r
+ if (Paused)\r
+ return;\r
+ TotalElapsed += elapsed;\r
+ if (TotalElapsed > TimePerFrame)\r
+ {\r
+ Frame++;\r
+ // Keep the Frame between 0 and the total frames, minus one.\r
+ Frame = Frame % framecount;\r
+ TotalElapsed -= TimePerFrame;\r
+ }\r
+ //If loop is false and the current Frame is the last frame \r
+ //then stop playing the animation\r
+ if ((Frame == framecount - 1) && loop == false)\r
+ Pause();\r
+\r
+ }\r
+\r
+ // class AnimatedTexture\r
+ public void DrawFrame(SpriteBatch Batch, Vector2 screenpos)\r
+ {\r
+ DrawFrame(Batch, Frame, screenpos);\r
+ }\r
+ public void DrawFrame(SpriteBatch Batch, int frame, Vector2 screenpos)\r
+ {\r
+\r
+ int FrameWidth = myTexture.Width / framecount;\r
+ Rectangle sourcerect = new Rectangle(FrameWidth * Frame, Row * 64,\r
+ FrameWidth, 64);\r
+ Batch.Draw(myTexture, screenpos, sourcerect, Color.White,\r
+ Rotation, Origin, Scale, SpriteEffects.None, Depth);\r
+ }\r
+\r
+ public bool IsPaused\r
+ {\r
+ get { return Paused; }\r
+ }\r
+ public void Reset()\r
+ {\r
+ Frame = 0;\r
+ TotalElapsed = 0f;\r
+ }\r
+ public void Stop()\r
+ {\r
+ Pause();\r
+ Reset();\r
+ }\r
+ public void Play()\r
+ {\r
+ Paused = false;\r
+ }\r
+ public void Pause()\r
+ {\r
+ Paused = true;\r
+\r
+ }\r
+\r
+ }\r
+}\r
</ItemGroup>\r
<ItemGroup>\r
<Compile Include="AI.cs" />\r
+ <Compile Include="AnimatedTexture.cs" />\r
+ <Compile Include="AnimateMelee.cs" />\r
<Compile Include="GameLogic.cs" />\r
<Compile Include="HUD.cs" />\r
<Compile Include="IEntity.cs" />\r
int velocityY;\r
#endregion \r
\r
+ //zac variable\r
+ AnimateMelee animateMelee;\r
+\r
#region Public Methods\r
public Melee(Game theGame, String Name, Point position, int playerIndex)\r
: base(theGame, Name, position, playerIndex, baseHealth, baseDamage)\r
charModel = contentManager.Load<Texture2D>("cs"); //change to charModel when designed\r
projectileModel = contentManager.Load<Texture2D>("projectile"); //change to a projectile model later\r
\r
+ /*Zac\r
+ */\r
+ animateMelee = new AnimateMelee(contentManager); \r
+\r
}\r
/// <summary>\r
/// This method will draw a character to the screen.\r
public override void Draw(SpriteBatch spriteBatch)\r
{\r
Rectangle position = Game.State.Map.GetRectangleFromCoordinates(Motion.Position);\r
- spriteBatch.Draw(charModel, position, Color.White);\r
+ //spriteBatch.Draw(charModel, position, Color.White);\r
+ animateMelee.AttackLeft(spriteBatch);\r
+ \r
}\r
\r
public override void Attack(List<Keys> keysPressed)\r