예제 #1
0
def display_enter_player_names():
    """ Ask the users to enter their names """
    # Create the menu button/text/field objects
    txt_title = Entities.Text(title_font, "Enter Player Names", Colours.WHITE,
                              width / 2, 38)
    txt_user = Entities.Text(main_font, "Player 1, enter your name:",
                             Colours.WHITE, width / 2, 150)
    txt_hint = Entities.Text(main_font, "Enter name (press enter to set)",
                             Colours.WHITE, width / 2, 380)

    name_field = Entities.InputField(main_font, "Player 1", Colours.BLACK,
                                     width / 2, 200, 14)

    btn_return = Entities.Button(main_font, "Return to Main Menu",
                                 Colours.WHITE, width / 2, 300)

    player = 1
    player_names = ["Player 1", "Player 2"]

    while True:
        # Handle events
        events = pygame.event.get()
        for e in events:
            if e.type == pygame.QUIT:
                quit_game()

            # Call the event handler for the button object and do necessary function call if needed
            if btn_return.event(e):
                display_main_menu()

            if name_field.event(e):
                field_text = name_field.get_text()

                if field_text:
                    player_names[player - 1] = field_text

                player += 1
                name_field.reset("Player 2")
                txt_user.update_text("Player 2, enter your name:")

        # Draw everything to the screen
        renderer.update_display(display)

        renderer.add(txt_title)
        renderer.add(txt_user)
        renderer.add(name_field)
        renderer.add(btn_return)
        renderer.add(txt_hint)

        renderer.draw("bg_plain", Colours.BLACK)

        if player > 2:
            return player_names