public override void Update(GameTime gameTime) { if (Visible) { KeyboardState kState = Keyboard.GetState(); if (kState.IsKeyPressed(_oldKeyboardStateState, Keys.Left, Keys.NumPad4)) { Direction = DirectionEnum.Left; } else if (kState.IsKeyPressed(_oldKeyboardStateState, Keys.Down, Keys.NumPad5)) { Direction = DirectionEnum.Down; } else if (kState.IsKeyPressed(_oldKeyboardStateState, Keys.Right, Keys.NumPad6)) { Direction = DirectionEnum.Right; } else if (kState.IsKeyPressed(_oldKeyboardStateState, Keys.Up, Keys.NumPad8)) { Direction = DirectionEnum.Up; } if (!_bullet.IsActive) { if (kState.IsKeyPressed(_oldKeyboardStateState, Keys.Z, Keys.NumPad7)) { _shootStage = ShootStageEnum.Preparation; _shootDirection = DirectionEnum.Left; } else if (kState.IsKeyPressed(_oldKeyboardStateState, Keys.X, Keys.NumPad9)) { _shootStage = ShootStageEnum.Preparation; _shootDirection = DirectionEnum.Right; } } _oldKeyboardStateState = kState; } else { Direction = DirectionEnum.None; } base.Update(gameTime); }
public override void Update(GameTime gameTime) { if (Visible) { GamePadState gState = GamePad.GetState(PlayerIndex.One); KeyboardState kState = Keyboard.GetState(); if (kState.IsKeyPressed(_oldKeyboardStateState, Keys.Left, Keys.NumPad4) || gState.IsButtonPressed(_oldGamePadState, Buttons.DPadLeft)) Direction = DirectionEnum.Left; else if (kState.IsKeyPressed(_oldKeyboardStateState, Keys.Down, Keys.NumPad5) || gState.IsButtonDown(Buttons.DPadDown)) Direction = DirectionEnum.Down; else if (kState.IsKeyPressed(_oldKeyboardStateState, Keys.Right, Keys.NumPad6) || gState.IsButtonPressed(_oldGamePadState, Buttons.DPadRight)) Direction = DirectionEnum.Right; else if (kState.IsKeyPressed(_oldKeyboardStateState, Keys.Up, Keys.NumPad8) || gState.IsButtonDown(Buttons.DPadUp)) Direction = DirectionEnum.Up; if (!_bullet.IsActive) { if (kState.IsKeyPressed(_oldKeyboardStateState, Keys.Z, Keys.NumPad7) || gState.IsButtonPressed(_oldGamePadState, Buttons.LeftTrigger)) { _shootStage = ShootStageEnum.Preparation; _shootDirection = DirectionEnum.Left; } else if (kState.IsKeyPressed(_oldKeyboardStateState, Keys.X, Keys.NumPad9) || gState.IsButtonPressed(_oldGamePadState, Buttons.RightTrigger)) { _shootStage = ShootStageEnum.Preparation; _shootDirection = DirectionEnum.Right; } } _oldKeyboardStateState = kState; _oldGamePadState = gState; } else Direction = DirectionEnum.None; base.Update(gameTime); }
protected override SpriteTypeEnum GetSprite(bool isFalling, SpriteTypeEnum oldSprite) { if (_shootStage == ShootStageEnum.Fire) { _shootStage = ShootStageEnum.None; DirectionEnum direction = _shootDirection; if (direction == DirectionEnum.Left) return SpriteTypeEnum.HeroShotLeft; return SpriteTypeEnum.HeroShotRight; } if (_shootStage == ShootStageEnum.Preparation) { _shootStage = ShootStageEnum.Fire; if (_shootDirection == DirectionEnum.Left) return SpriteTypeEnum.HeroPrepareShotLeft; return SpriteTypeEnum.HeroPrepareShotRight; } if (IsInBiomass) { _bioMassAttempts--; if (_bioMassAttempts == 0 && OnLifeFired != null) OnLifeFired(this, new EventArgs()); if (oldSprite == SpriteTypeEnum.HeroInBiomass1) return SpriteTypeEnum.HeroInBiomass2; if (oldSprite == SpriteTypeEnum.HeroInBiomass2) return SpriteTypeEnum.HeroInBiomass3; return SpriteTypeEnum.HeroInBiomass1; } if (isFalling || (Direction == DirectionEnum.Up || Direction == DirectionEnum.Down)) // Fall and Stairs { if (oldSprite == SpriteTypeEnum.HeroStairsLeft) return SpriteTypeEnum.HeroStairsRight; return SpriteTypeEnum.HeroStairsLeft; } if (Direction == DirectionEnum.None) // Idle { if (_heroIdleDivider) { _heroIdleDivider = false; if (oldSprite == SpriteTypeEnum.HeroIdleRight) { _heroIdleHeadDirection = DirectionEnum.Left; return SpriteTypeEnum.HeroIdle; } if (oldSprite == SpriteTypeEnum.HeroIdleLeft) { _heroIdleHeadDirection = DirectionEnum.Right; return SpriteTypeEnum.HeroIdle; } if (oldSprite == SpriteTypeEnum.HeroIdle) { if (_heroIdleHeadDirection == DirectionEnum.Right) return SpriteTypeEnum.HeroIdleRight; if (_heroIdleHeadDirection == DirectionEnum.Left) return SpriteTypeEnum.HeroIdleLeft; } } else { _heroIdleDivider = true; return oldSprite; } } if (Direction == DirectionEnum.Left) { if (oldSprite == SpriteTypeEnum.HeroMoveLeft1) return SpriteTypeEnum.HeroMoveLeft2; if (oldSprite == SpriteTypeEnum.HeroMoveLeft2) return SpriteTypeEnum.HeroMoveLeft3; if (oldSprite == SpriteTypeEnum.HeroMoveLeft3) return SpriteTypeEnum.HeroMoveLeft4; return SpriteTypeEnum.HeroMoveLeft1; } if (Direction == DirectionEnum.Right) { if (oldSprite == SpriteTypeEnum.HeroMoveRight1) return SpriteTypeEnum.HeroMoveRight2; if (oldSprite == SpriteTypeEnum.HeroMoveRight2) return SpriteTypeEnum.HeroMoveRight3; if (oldSprite == SpriteTypeEnum.HeroMoveRight3) return SpriteTypeEnum.HeroMoveRight4; return SpriteTypeEnum.HeroMoveRight1; } return SpriteTypeEnum.HeroIdle; }
protected override SpriteTypeEnum GetSprite(bool isFalling, SpriteTypeEnum oldSprite) { if (_shootStage == ShootStageEnum.Fire) { _shootStage = ShootStageEnum.None; DirectionEnum direction = _shootDirection; if (direction == DirectionEnum.Left) { return(SpriteTypeEnum.HeroShotLeft); } return(SpriteTypeEnum.HeroShotRight); } if (_shootStage == ShootStageEnum.Preparation) { _shootStage = ShootStageEnum.Fire; if (_shootDirection == DirectionEnum.Left) { return(SpriteTypeEnum.HeroPrepareShotLeft); } return(SpriteTypeEnum.HeroPrepareShotRight); } if (IsInBiomass) { _bioMassAttempts--; if (_bioMassAttempts == 0 && OnLifeFired != null) { OnLifeFired(this, new EventArgs()); } if (oldSprite == SpriteTypeEnum.HeroInBiomass1) { return(SpriteTypeEnum.HeroInBiomass2); } if (oldSprite == SpriteTypeEnum.HeroInBiomass2) { return(SpriteTypeEnum.HeroInBiomass3); } return(SpriteTypeEnum.HeroInBiomass1); } if (isFalling || (Direction == DirectionEnum.Up || Direction == DirectionEnum.Down)) // Fall and Stairs { if (oldSprite == SpriteTypeEnum.HeroStairsLeft) { return(SpriteTypeEnum.HeroStairsRight); } return(SpriteTypeEnum.HeroStairsLeft); } if (Direction == DirectionEnum.None) // Idle { if (_heroIdleDivider) { _heroIdleDivider = false; if (oldSprite == SpriteTypeEnum.HeroIdleRight) { _heroIdleHeadDirection = DirectionEnum.Left; return(SpriteTypeEnum.HeroIdle); } if (oldSprite == SpriteTypeEnum.HeroIdleLeft) { _heroIdleHeadDirection = DirectionEnum.Right; return(SpriteTypeEnum.HeroIdle); } if (oldSprite == SpriteTypeEnum.HeroIdle) { if (_heroIdleHeadDirection == DirectionEnum.Right) { return(SpriteTypeEnum.HeroIdleRight); } if (_heroIdleHeadDirection == DirectionEnum.Left) { return(SpriteTypeEnum.HeroIdleLeft); } } } else { _heroIdleDivider = true; return(oldSprite); } } if (Direction == DirectionEnum.Left) { if (oldSprite == SpriteTypeEnum.HeroMoveLeft1) { return(SpriteTypeEnum.HeroMoveLeft2); } if (oldSprite == SpriteTypeEnum.HeroMoveLeft2) { return(SpriteTypeEnum.HeroMoveLeft3); } if (oldSprite == SpriteTypeEnum.HeroMoveLeft3) { return(SpriteTypeEnum.HeroMoveLeft4); } return(SpriteTypeEnum.HeroMoveLeft1); } if (Direction == DirectionEnum.Right) { if (oldSprite == SpriteTypeEnum.HeroMoveRight1) { return(SpriteTypeEnum.HeroMoveRight2); } if (oldSprite == SpriteTypeEnum.HeroMoveRight2) { return(SpriteTypeEnum.HeroMoveRight3); } if (oldSprite == SpriteTypeEnum.HeroMoveRight3) { return(SpriteTypeEnum.HeroMoveRight4); } return(SpriteTypeEnum.HeroMoveRight1); } return(SpriteTypeEnum.HeroIdle); }