Пример #1
0
def main():
    terminal.open()
    tilemap = TileMap(Size(80, 24))

    player_pos = Point(0, 0)
    for y, row in enumerate(dungeon):
        for x, char in enumerate(row):
            cell = tilemap[Point(x, y)]
            if char == '.':
                cell.terrain = 0
            elif char == '#':
                cell.terrain = 1
            elif char == '@':
                player_pos = Point(x, y)
            else:
                raise ValueError(char)

    terminal.refresh()
    terminal.clear()
    draw(tilemap, player_pos)
    try:
        while True:
            terminal.clear()
            draw(tilemap, player_pos)
            terminal.refresh()
            if terminal.has_input():
                char = terminal.read()
                if char == terminal.TK_Q:
                    break
                if char == terminal.TK_UP:
                    player_pos = player_pos + Point(0, -1)
                if char == terminal.TK_DOWN:
                    player_pos = player_pos + Point(0, 1)
                if char == terminal.TK_LEFT:
                    player_pos = player_pos + Point(-1, 0)
                if char == terminal.TK_RIGHT:
                    player_pos = player_pos + Point(1, 0)
    except KeyboardInterrupt:
        pass
    finally:
        terminal.close()
Пример #2
0
"""
Demonstrates the ``nice_terminal`` and ``geom`` modules.
"""

from clubsandwich.blt.nice_terminal import terminal
from clubsandwich.geom import Point

terminal.open()

a = Point(10, 10)
b = a + Point(1, 1)
terminal.put(a, 'a')
terminal.put(b, 'b')
terminal.refresh()
terminal.read()
terminal.close()
Пример #3
0
from clubsandwich.blt.rexpaint_image import REXPaintImage

examples_dir = pathlib.Path(__file__).parent

terminal.open()

# Our example .xp file does not use codepage 437 keycodes, so don't tell
# BearLibTerminal to do that mapping.
terminal.set("""
font: {}, size=10x10;
window.size=40x40;
input.filter=[keyboard, mouse];
""".format(str(examples_dir / 'assets' / 'cp437_10x10.png')))

image = REXPaintImage(str(examples_dir / 'assets' / 'xptest.xp'))
image.draw(Point(0, 0), layer=0)
image.draw(Point(0, 10), layer=1)
for i in range(image.num_layers):
    terminal.layer(i)
    image.draw(Point(15, 15), layer=i)

terminal.refresh()

while True:
    val = terminal.read()
    if val == terminal.TK_CLOSE:
        break
    elif val == terminal.TK_MOUSE_MOVE:
        print(terminal.pick(terminal.state(terminal.TK_MOUSE_X), terminal.state(terminal.TK_MOUSE_Y)))
terminal.close()