Пример #1
0
 public EnemiesMatrix(GameScreen i_GameScreen)
     : base(i_GameScreen.Game)
 {
     m_JumpTwiceMilliSec = 1000;
     this.r_EnemiesMatrix = new List<List<Enemy>>();
     m_JumpDirection = SpriteJump.eJumpDirection.Right;
     m_GameScreen = i_GameScreen;
     m_NumberOfColumns = k_StartupNumOfColumns;
 }
Пример #2
0
 public EnemiesMatrix(GameScreen i_GameScreen)
     : base(i_GameScreen.Game)
 {
     m_JumpTwiceMilliSec  = 1000;
     this.r_EnemiesMatrix = new List <List <Enemy> >();
     m_JumpDirection      = SpriteJump.eJumpDirection.Right;
     m_GameScreen         = i_GameScreen;
     m_NumberOfColumns    = k_StartupNumOfColumns;
 }
Пример #3
0
 private void jumpAllAliveEnemies(SpriteJump.eJumpDirection i_JumpDirection, float i_DistanceToJump, bool i_IsJumpingBackwards)
 {
     foreach (Enemy enemy in GetEnemysAsList())
     {
         if (!enemy.isDying)
         {
             enemy.SpriteJump.Jump(i_JumpDirection, i_DistanceToJump, i_IsJumpingBackwards);
         }
     }
 }
Пример #4
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);
                }
            }
        }
Пример #5
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);
                }
            }
        }