Example #1
0
File: Hero.cs Project: semack/land
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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;
        }
Example #4
0
File: Hero.cs Project: semack/land
        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);
        }