Пример #1
0
def main_game_loop():
    
    global levelmap
    global levelmapobjs
    global levelmapobjs_coords
    global dungeon
    global con
    global inventory_manager

    con = libtcod.console_new(SCREEN_WIDTH, SCREEN_HEIGHT)
    panel = libtcod.console_new(SCREEN_WIDTH, PANEL_HEIGHT)

    player = character.Character(5, 5, '@', libtcod.white, "player", blocks=True)
    inventory_manager = inventorymanager.InventoryManager(SCREEN_WIDTH, SCREEN_HEIGHT, con)
    #char = character.Character(5, 5, '@', libtcod.white, "player")

    """ Right now, just demoing a dungeon. """
    #levelmap, levelmapobjs = overworldmap.generate_level_map()
    levelmap, levelmapobjs = basemap.generate_level_map(player, current_floor)
    #saveload.save_map(levelmap, levelmapobjs, "testingmapmain")
    #levelmap, levelmapobjs = saveload.load_map("testingmapmain")

    """ Initialize fog of war """
    for y in xrange(basemap.MAP_HEIGHT):
        for x in xrange(basemap.MAP_WIDTH):
            libtcod.map_set_properties(fov_map, x, y, not levelmap[x][y].block_sight, not levelmap[x][y].blocked)

    """ Coordinates for every object on the overworld map """
    for i in levelmapobjs:
        levelmapobjs_coords.append((i.x, i.y))

    dungeon.append((levelmap, levelmapobjs, levelmapobjs_coords))

    levelmapobjs.append(player)

    while not libtcod.console_is_window_closed():

        render_all(con, panel, player)
        libtcod.console_flush()
        libtcod.console_put_char(0, player.x, player.y, ' ', libtcod.BKGND_NONE)

        """ Results of the player's key actions. """        
        key_handler_status = handle_keys(player)

        move_npcs(player)

        check_endgame_conditions(player)

        if key_handler_status == "ok":
            continue

        if key_handler_status == "exit":
            break
        elif key_handler_status == "down_stairs":
            move_down_stairs(player)
Пример #2
0
def move_down_stairs(player):
    """ Move the player down a level. """

    global levelmap, levelmapobjs, levelmapobjs_coords, current_floor
    global con


    """ Save the previous map. """
    saveload.save_map(levelmap, levelmapobjs, current_floor)
    current_floor += 1
    levelmap, levelmapobjs = basemap.generate_level_map(player, current_floor)
    levelmapobjs.append(player)
    
    """ Coordinates for every object on the overworld map """
    for i in levelmapobjs:
        levelmapobjs_coords.append((i.x, i.y))