예제 #1
0
        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;
        }
예제 #2
0
        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);
            }
        }