Пример #1
0
        public override void Update(GameTime i_GameTime)
        {
            bool  isSpeedUp = false, isJumpingBackwards = false;
            float originalDistanceToJump;
            int   timeToJump;

            originalDistanceToJump = GetEnemysAsList()[0].Width / 2;
            randomEnemyShooting();
            m_TimeCount += i_GameTime.ElapsedGameTime.Milliseconds;
            timeToJump   = m_JumpTwiceMilliSec / 2;
            if (m_TimeCount >= timeToJump)
            {
                jumpAllAliveEnemies(m_JumpDirection, originalDistanceToJump, isJumpingBackwards);
                if (m_JumpDirection.Equals(SpriteJump.eJumpDirection.DownAndLeft))
                {
                    m_JumpDirection = SpriteJump.eJumpDirection.Left;
                }
                else if (m_JumpDirection.Equals(SpriteJump.eJumpDirection.DownAndRight))
                {
                    m_JumpDirection = SpriteJump.eJumpDirection.Right;
                }

                SpriteJump.SpriteOverJumped enemyOverJumpedData = getEnemyOverJumpedData();
                if (enemyOverJumpedData.IsTouchedScreenHorizontalBoundary)
                {
                    switch (m_JumpDirection)
                    {
                    case SpriteJump.eJumpDirection.Right:
                        isJumpingBackwards = true;
                        jumpAllAliveEnemies(enemyOverJumpedData.DirectionToJumpBackwards, enemyOverJumpedData.DistanceToJumpBackwards, isJumpingBackwards);
                        isSpeedUp       = true;
                        m_JumpDirection = SpriteJump.eJumpDirection.DownAndLeft;
                        break;

                    case SpriteJump.eJumpDirection.Left:
                        isJumpingBackwards = true;
                        jumpAllAliveEnemies(enemyOverJumpedData.DirectionToJumpBackwards, enemyOverJumpedData.DistanceToJumpBackwards, isJumpingBackwards);
                        isSpeedUp       = true;
                        m_JumpDirection = SpriteJump.eJumpDirection.DownAndRight;
                        break;
                    }
                }

                m_TimeCount -= timeToJump;
                if (isSpeedUp)
                {
                    SpeedUp(0.95);
                }
            }
        }