public void Draw(MapInfo map, GameInfo info) { //DrawHUD(info); DrawMap(map, info); //DrawMessages(); WritePanels(); }
public void DrawMap(MapInfo map, GameInfo info) { int viewWidth = 30; int viewHeight = 10; int viewX = info.ExtendedPlayerInfo.X - viewWidth / 2; int viewY = info.ExtendedPlayerInfo.Y - viewHeight / 2; if (viewX < 0) viewX = 0; if (viewY < 0) viewY = 0; if (viewX + viewWidth > map.MapWidth) viewX = map.MapWidth - viewWidth; if (viewY + viewHeight > map.MapLength) viewY = map.MapLength - viewHeight; for (int j = 0; j < viewHeight; j++) { char[] line = new char[viewWidth]; for (int i = 0; i < line.Length; i++) { TileInfo tile = map.Tiles[viewY + j][viewX + i]; if (tile.Player != null) { if (tile.Player.IsKilled) { char symbol = 'X'; ConsoleColor colour = ConsoleColor.Red; //tile.Player.Colour; MainPanel.Write(symbol, colour); } else { char symbol = tile.Player.Symbol; ConsoleColor colour = tile.Player.Colour; //tile.Player.Colour; MainPanel.Write(symbol, colour); } } else if (tile.Bullet != null) { char symbol = '.'; ConsoleColor colour = ConsoleColor.Yellow; MainPanel.Write(symbol, colour); } else { char symbol = tile.Symbol; ConsoleColor colour = tile.Colour; MainPanel.Write(symbol, colour); } } MainPanel.Write('\n', ConsoleColor.Gray); } int p = 1; }
public static MapInfo LoadFromArray(char[][] mapArray) { MapInfo map = new MapInfo(); map.Tiles = new List<List<TileInfo>>(); for (int i = 0; i < mapArray.Length; i++) { List<TileInfo> list = new List<TileInfo>(); for (int j = 0; j < mapArray[i].Length; j++) { list.Add(new TileInfo() { X = j, Y = i, Colour = ConsoleColor.Gray, Symbol = mapArray[i][j] }); } map.Tiles.Add(list); } map.MapLength = mapArray.Length; map.MapWidth = mapArray[0].Length; return map; }