public bool handleKeys(Thing player, List<Tile> walls) { var key = TCODConsole.waitForKeypress(true); if (key.KeyCode == TCODKeyCode.Enter && key.KeyCode == TCODKeyCode.Alt) { TCODConsole.setFullscreen(true); } else if (key.KeyCode == TCODKeyCode.Escape) { return true; } if (TCODConsole.isKeyPressed(TCODKeyCode.Left)) { if (walls.Count(tile => tile.tileX == player.x - 1 && tile.tileY == player.y && tile.blocked) == 0) { player.move(-1, 0); } } else if (TCODConsole.isKeyPressed(TCODKeyCode.Right)) { if (walls.Count(tile => tile.tileX == player.x + 1 && tile.tileY == player.y && tile.blocked) == 0) { player.move(1, 0); } } else if (TCODConsole.isKeyPressed(TCODKeyCode.Up)) { if (walls.Count(tile => tile.tileX == player.x && tile.tileY == player.y - 1 && tile.blocked) == 0) { player.move(0, -1); } } else if (TCODConsole.isKeyPressed(TCODKeyCode.Down)) { if (walls.Count(tile => tile.tileX == player.x && tile.tileY == player.y + 1 && tile.blocked) == 0) { player.move(0, 1); } } return false; }
public static void Main() { Thing player = new Thing(Console.screenX / 2, Console.screenY / 2, '@', TCODColor.white); Thing npc = new Thing(Console.screenX / 2 - 5, Console.screenY / 2, '@', TCODColor.yellow); List<Thing> things = new List<Thing>(); things.Add(player); things.Add(npc); List<Tile> floor = new List<Tile>(); for (int x = 0; x < Console.mapX; x++) { for (int y = 0; y < Console.mapY; y++) { floor.Add(new Tile(x, y, false)); } } List<Tile> walls = new List<Tile>(); walls.Add(new Tile(50, 22, true)); walls.Add(new Tile(30, 22, true)); TCODConsole.initRoot(Console.screenX, Console.screenY, "DeathCreep", false); TCODSystem.setFps(25); TCODConsole.root.print(0, 0, "Welcome to DeathCreep! There's not much here."); TCODConsole.flush(); bool endGame = false; while (!endGame && !TCODConsole.isWindowClosed()) { RenderAll(things, floor, walls); Input move = new Input(); endGame = move.handleKeys(player, walls); } }