private void InitialzeStateManager() { _stateManager = new StateManager(_muffinAnimator); IdleState idle = new IdleState(_stateManager, transform); MoveState move = new MoveState(_stateManager, transform); TrapState trap = new TrapState(_stateManager, transform); DieState die = new DieState(_stateManager, transform); SpinState spin = new SpinState(_stateManager, transform); BlastState blast = new BlastState(_stateManager, transform); ChocoRushState chocoRush = new ChocoRushState(_stateManager, transform); PauseState pause = new PauseState(_stateManager, transform); _stateManager.AddCharacterState(idle); _stateManager.AddCharacterState(move); _stateManager.AddCharacterState(trap); _stateManager.AddCharacterState(die); _stateManager.AddCharacterState(spin); _stateManager.AddCharacterState(blast); _stateManager.AddCharacterState(chocoRush); _stateManager.AddCharacterState(pause); _stateManager.SetDefaultState("Pause"); }
public Blast(Game game, ref Texture2D textureBlast, Rectangle[] rectangle, Vector2 beginPositionBlast) : base(game) { this.textureBlast = textureBlast; this.beginPositionBlast.X = beginPositionBlast.X; this.beginPositionBlast.Y = beginPositionBlast.Y; positionBlast = beginPositionBlast; this.rectangle = rectangle; this.game = game; blastState = BlastState.None; }
public override void Update(GameTime gameTime) { MouseState mouseState = Mouse.GetState(game.Window); if (mouseState.LeftButton == ButtonState.Pressed && !isLeftAlreadyPres) { isLeftAlreadyPres = true; isLeftButtonPres = true; blastState = BlastState.Normal; positionClic.X = mouseState.X - rectangle[0].Width / 2; positionClic.Y = mouseState.Y - rectangle[0].Height / 2; //positionClic = mouseState.Position.ToVector2(); } if (isLeftButtonPres && FlagAnim) { #region //pX = (int)positionClic.X; //pY = (int)positionClic.Y; //pBX = (int)beginPositionBlast.X; //pBY = (int)beginPositionBlast.Y; //if (pX - pBX > 0) //{ // beginPositionBlast.X += 1; //} //else if (pX - pBX < 0) //{ // beginPositionBlast.X -= 10; //} //else //{ //} //if (pY - pBY > 0) //{ // beginPositionBlast.Y += 1; //} //else if (pY - pBY < 0) //{ // beginPositionBlast.Y -= 10; //} //else //{ //} //if (pX - pBX == 0 && pY - pBY == 0) //{ // blastState = BlastState.Explosion; //} #endregion if (beginPositionBlast == positionClic) { blastState = BlastState.Explosion; } beginPositionBlast = positionClic; if (blastState == BlastState.Explosion) { iteration++; if (iteration == 7) { iteration = -1; blastState = BlastState.None; beginPositionBlast = positionBlast; FlagAnim = false; isLeftAlreadyPres = false; } } } base.Update(gameTime); }