using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Content; namespace CarFire { class AnimateMelee { //member variables private AnimatedTexture SpriteTexture; string[] fileNames = new string[] { "graphics/meleeAttack", "graphics/meleeDying", "graphics/meleeExplosion", "graphics/meleeStanding", "graphics/meleeWalking" }; private ContentManager contentManager; //private GraphicsDeviceManager graphics; //private SpriteBatch spriteBatch; private bool changedGraphic; private string lastPh; private int row; private string ph; private Vector2 position; private SpriteBatch character; Player Player; public void Update(TimeSpan timeSpan) { SpriteTexture.UpdateFrame(timeSpan); } //constructor(s) public AnimateMelee(ContentManager content, Player player) { SpriteTexture = new AnimatedTexture(Vector2.Zero, 0, 1.0f, 0.5f); contentManager = content; ph = fileNames[3]; position = Vector2.Zero; Player = player; changedGraphic = true; } //methods public void AttackDown(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[0]; row = 0; character = spriteBatch; Animate(drawSpot); } public void AttackDownLeft(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[0]; row = 1; character = spriteBatch; Animate(drawSpot); } public void AttackLeft(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[0]; row = 2; if (lastPh == ph) changedGraphic = false; else changedGraphic = true; lastPh = ph; //graphics = graphicsDeviceManager; //this.spriteBatch = spriteBatch; //character = new SpriteBatch(spriteBatch.GraphicsDevice); character = spriteBatch; Animate(drawSpot); } public void AttackUpLeft(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[0]; row = 4; character = spriteBatch; Animate(drawSpot); } public void AttackUp(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[0]; row = 4; character = spriteBatch; Animate(drawSpot); } public void AttackUpRight(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[0]; row = 5; character = spriteBatch; Animate(drawSpot); } public void AttackRight(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[0]; row = 6; character = spriteBatch; Animate(drawSpot); } public void AttackDownRight(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[0]; row = 7; character = spriteBatch; Animate(drawSpot); } // death public void DieDown(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[1]; row = 0; character = spriteBatch; Animate(drawSpot); } public void DieDownLeft(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[1]; row = 1; character = spriteBatch; Animate(drawSpot); } public void DieLeft(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[1]; row = 2; character = spriteBatch; Animate(drawSpot); } public void DieUpLeft(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[1]; row = 4; character = spriteBatch; Animate(drawSpot); } public void DieUp(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[1]; row = 4; character = spriteBatch; Animate(drawSpot); } public void DieUpRight(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[1]; row = 5; character = spriteBatch; Animate(drawSpot); } public void DieRight(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[1]; row = 6; character = spriteBatch; Animate(drawSpot); } public void DieDownRight(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[1]; row = 7; character = spriteBatch; Animate(drawSpot); } //melee explosion public void ExplodeDown(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[2]; row = 0; character = spriteBatch; Animate(drawSpot); } public void ExplodeDownLeft(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[2]; row = 1; character = spriteBatch; Animate(drawSpot); } public void ExplodeLeft(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[2]; row = 2; character = spriteBatch; Animate(drawSpot); } public void ExplodeUpLeft(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[2]; row = 4; character = spriteBatch; Animate(drawSpot); } public void ExplodeUp(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[2]; row = 4; character = spriteBatch; Animate(drawSpot); } public void ExplodeUpRight(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[2]; row = 5; character = spriteBatch; Animate(drawSpot); } public void ExplodeRight(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[2]; row = 6; character = spriteBatch; Animate(drawSpot); } public void ExplodeDownRight(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[2]; row = 7; character = spriteBatch; Animate(drawSpot); } //melee standing /* * to do * change this from standard animation to only take into account one frame */ public void StandDown(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[3]; row = 0; character = spriteBatch; Animate(drawSpot); } public void StandDownLeft(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[3]; row = 1; character = spriteBatch; Animate(drawSpot); } public void StandLeft(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[3]; row = 2; character = spriteBatch; Animate(drawSpot); } public void StandUpLeft(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[3]; row = 4; character = spriteBatch; Animate(drawSpot); } public void StandUp(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[3]; row = 4; character = spriteBatch; Animate(drawSpot); } public void StandUpRight(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[3]; row = 5; character = spriteBatch; Animate(drawSpot); } public void StandRight(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[3]; row = 6; character = spriteBatch; Animate(drawSpot); } public void StandDownRight(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[3]; row = 7; character = spriteBatch; Animate(drawSpot); } //walking public void WalkDown(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[4]; row = 0; character = spriteBatch; Animate(drawSpot); } public void WalkDownLeft(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[4]; row = 1; character = spriteBatch; Animate(drawSpot); } public void WalkLeft(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[4]; row = 2; character = spriteBatch; Animate(drawSpot); } public void WalkUpLeft(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[4]; row = 4; character = spriteBatch; Animate(drawSpot); } public void WalkUp(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[4]; row = 4; character = spriteBatch; Animate(drawSpot); } public void WalkUpRight(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[4]; row = 5; character = spriteBatch; Animate(drawSpot); } public void WalkRight(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[4]; row = 6; character = spriteBatch; Animate(drawSpot); } public void WalkDownRight(SpriteBatch spriteBatch, Vector2 drawSpot) { ph = fileNames[4]; row = 7; character = spriteBatch; Animate(drawSpot); } public void Animate(Vector2 drawSpot) { //character = new SpriteBatch(graphics.GraphicsDevice); // "character" is the name of the sprite asset in the project. Console.WriteLine(ph); //SpriteTexture.Load(character.GraphicsDevice, contentManager, ph, 8, 12, true, row); if(changedGraphic) SpriteTexture.Load(character.GraphicsDevice, contentManager, ph, 8, 12, true, 1); //viewport = graphics.GraphicsDevice.Viewport; position = new Vector2(Player.Coordinates.X*Map.PixelsToUnitSquares, Player.Coordinates.Y*Map.PixelsToUnitSquares);//viewport.Width / 2, 0);//viewport.Height / 2f); Console.WriteLine(drawSpot); //character.Begin(); SpriteTexture.DrawFrame(character, drawSpot); //character.End(); } } }