Наложения Pygame - PullRequest
       12

Наложения Pygame

1 голос
/ 05 декабря 2011

Хорошо, я хочу сделать оверлейный экран.

Таким образом, всякий раз, когда нажатие клавиши составляет p , экран останавливается и появляется экран с сообщением : «Нажмите« q »для выхода или« c »для продолжения» что-то в этом роде.

Может кто-нибудь сказать мне, как?

1 Ответ

2 голосов
/ 05 декабря 2011

Самый простой способ сделать это - использовать подмодуль, а затем создать новый цикл для blit() -ing на экране и обработки событий для этого меню паузы.

(Это только методология; так я работаю над своими проектами.)

Обновление: 13/12/11

Следующий фрагмент кода взят из «родительского» модуля. Это просто часть цикла кода. То, что вы ищете, это строка button.doAction(screen), которая в основном говорит PyGame выполнить соответствующий подмодуль (это не важно; вам просто нужно вызвать функцию "child", как обычно).

while mainRunning:

    # --- Event Catching & Handling ---
    for event in pygame.event.get():
        # Quit PyGame safely upon exit
        if event.type == pygame.QUIT:
            mainRunning = False

        # Make the buttons do actions
        if event.type == pygame.MOUSEBUTTONUP:
            mousePos = pygame.mouse.get_pos()
            for button in menuList:
                X = button.getXPos()
                Y = button.getYPos()
                if X[0] < mousePos[0] < X[1] and Y[0] < mousePos[1] < Y [1]:
                    button.doAction(screen)

    pygame.display.flip()

pygame.quit()

Итак, если мы скажем, что функция, которую мы хотели, была playGame.levelChoose() - запомните, это [подмодуль]. [Функция] - тогда цикл в «потомке» будет:

def levelChoose(screen, playerData, playerName):
    levelChooseRunning = True

    while levelChooseRunning:
        # --- Event Catching & Handling ---
        for event in pygame.event.get():
            # Quit PyGame safely upon exit
            if event.type == pygame.QUIT:
                levelMenuRunning = False

    pygame.display.flip()

(Конечно, в этих примерах пропущено много кода; если вы хотите выделить полные файлы, они находятся здесь, на GitHub )

Дайте мне знать, если есть еще вопросы, потому что это, вероятно, просто смутило вас еще немного ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...