public VisualElement[,] LoadVisibleLevel(VisualElement[,] VisibleMatrix, VisualElement[,] matrix, Hero hero) { VisualElements VisualLoader = new VisualElements(); VisibleMatrix[VisibleMatrix.GetLength(0) / 2, VisibleMatrix.GetLength(1) / 2] = VisualLoader.Hero(1); for (int r2 = 0; r2 < VisibleMatrix.GetLength(0); r2++) { for (int c2 = 0; c2 < VisibleMatrix.GetLength(0); c2++) { int actualPositionRow = hero.Position.row - VisibleMatrix.GetLength(0) / 2 + r2; int actualPositionCol = hero.Position.col - VisibleMatrix.GetLength(0) / 2 + c2; if (actualPositionRow >= 0 || actualPositionRow > matrix.GetLength(0) || actualPositionCol >= 0 || actualPositionCol > matrix.GetLength(1)) { VisibleMatrix[r2, c2] = VisualLoader.Empty(sizeOfVisualElements); } else { VisibleMatrix[r2, c2] = matrix[actualPositionRow, actualPositionCol]; } } } return VisibleMatrix; }