コード例 #1
0
def event_handler(game_state, player):
    """
    ===========================================================================
    Handles keyboard/mouse inputs. Called every frame.

    :param game_state: current state as a string (ie. Main_Menu, Settings, etc)
    :param player: current instance of player class (should only be one)
    :return: input action (ie, moving left or right), new game_state
    ===========================================================================
    """

    now = datetime.datetime.now()
    global game_is_saved
    global room_is_populated
    player_action = 'idle'

    if Entity.Enemy.numberOfOnscreenEnemies == 0 and not game_is_saved:
        game_is_saved = save_game(player)

    for event in pygame.event.get():
        if event.type == Helper.UPDATETIME:
            message = TimeOfDay.TimeOfDay.update_time_of_day(now)
            if message is not None and len(message) > 0:
                display_messages.append(message)
        if event.type == QUIT:
            game_state = 'Quit'
        elif event.type == KEYDOWN:
            if event.key == K_ESCAPE:
                game_state = 'Main_Menu'
        elif event.type == MOUSEBUTTONDOWN:
            player_action = Inputs.read_mouse_down(event.pos)
        elif event.type == MOUSEBUTTONUP:
            player_action = Inputs.read_mouse_up(event.pos)

    if not room_is_populated:
        room_is_populated = populate_current_room()
    if not Player.Player.is_moving and not Player.Player.isLeavingRoom:
        if len(Entity.enemy_list) == 0:
            Player.Player.isLeavingRoom = True
            Room.advance_room()
            clean_room()

            # random roll for item

            if random.random() > 0.75:
                display_messages.append('Received a weapon!')
                Player.Player.Inventory.add_item(
                    Item.Weapon(add_to_backpack=True))
                Player.Player.Backpack.add_item(Player.Player.Inventory)

    if Room.current_room.position[1] >= Room.current_room_x\
            and Player.Player.isLeavingRoom:
        Player.Player.isLeavingRoom = False
        game_is_saved = False
        room_is_populated = False

    return player_action, game_state
コード例 #2
0
def event_handler(game_state, player):
    """
    ===========================================================================
    Handles keyboard/mouse inputs. Called every frame.

    :param game_state: current state as a string (ie. Main_Menu, Settings, etc)
    :param player: current instance of player class (should only be one)
    :return: input action (ie, moving left or right), new game_state
    ===========================================================================
    """

    now = datetime.datetime.now()
    global game_is_saved
    global room_is_populated
    player_action = 'idle'

    if Entity.Enemy.numberOfOnscreenEnemies == 0 and game_is_saved is False:
        game_is_saved = save_game(player)

    for event in pygame.event.get():
        if event.type == Helper.UPDATETIME:
            TimeOfDay.TimeOfDay.update_time_of_day(now)
        if event.type == QUIT:
            game_state = 'Quit'
        elif event.type == KEYDOWN:
            if event.key == K_ESCAPE:
                game_state = 'Main_Menu'
            elif event.key == K_m:
                print_data()
        elif event.type == MOUSEBUTTONDOWN:
            player_action = Inputs.read_mouse_movements(event.pos)

    if not room_is_populated:
        room_is_populated = populate_current_room()
    # if Entity.Enemy.numberOfOnscreenEnemies < 3:
    #     Entity.enemy_list.append(Entity.Enemy())
    # elif event.key == K_h and Entity.Enemy.numberOfOnscreenEnemies > 0:
    #     for enemy in Entity.enemy_list:
    #         enemy.__del__() todo: remove
    if not Player.Player.is_moving and not Player.Player.isLeavingRoom:
        if len(Entity.enemy_list) == 0:
            Player.Player.isLeavingRoom = True
            Room.advance_room()
            clean_room()

    if Room.current_room.position[1] >= Room.current_room_x\
            and Player.Player.isLeavingRoom:
        Player.Player.isLeavingRoom = False
        game_is_saved = False
        room_is_populated = False

    return player_action, game_state