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); } } }
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; } }