Пример #1
0
        private void checkIfResizeNeeded(eMatElement i_MatElement)
        {
            bool elementIsEmpty = false;

            if (m_Matrix.Count > 0)
            {
                switch (i_MatElement)
                {
                case eMatElement.BottomRow:
                    elementIsEmpty = matElementIsEmpty(m_Cols - 1, m_Rows - 1, true);
                    break;

                case eMatElement.RightColomn:
                    elementIsEmpty = matElementIsEmpty(m_Rows - 1, m_Cols - 1, false);
                    break;

                case eMatElement.TopRow:
                    elementIsEmpty = matElementIsEmpty(m_Cols - 1, 0, true);
                    break;

                default:
                    elementIsEmpty = matElementIsEmpty(m_Rows - 1, 0, false);
                    break;
                }

                if (elementIsEmpty)
                {
                    removeElementFromMat(i_MatElement);
                    m_MatrixSize = m_GameManager.EnemyMatSize;
                    checkIfResizeNeeded(i_MatElement);
                }
            }
        }
Пример #2
0
        private void removeElementFromMat(eMatElement i_MatElement)
        {
            switch (i_MatElement)
            {
            case eMatElement.LeftColomn:
                for (int i = 0; i < m_Rows; i++)
                {
                    m_Matrix[i].RemoveAt(0);
                }
                m_Position.X += m_EnemySize.X + m_SpaceWidth;
                m_Cols--;
                m_GameManager.MatCols--;
                updateOffsets();
                break;

            case eMatElement.RightColomn:
                for (int i = 0; i < m_Rows; i++)
                {
                    m_Matrix[i].RemoveAt(m_Cols - 1);
                }
                m_Cols--;
                m_GameManager.MatCols--;
                break;

            case eMatElement.TopRow:
                m_Matrix.RemoveAt(0);
                m_Position.Y += m_EnemySize.Y + m_SpaceHeight;
                m_Rows--;
                m_GameManager.MatRows--;
                updateOffsets();
                break;

            default:
                m_Matrix.RemoveAt(m_Rows - 1);
                m_Rows--;
                m_GameManager.MatRows--;
                break;
            }
        }