Pygame叠加

时间:2011-12-04 22:00:28

标签: python overlay pygame

好的,所以我想制作一个叠加屏幕。

因此,只要按键是 p ,屏幕就会暂停并弹出一个屏幕说 :“按'q'退出或'c'继续,” 类似的东西。

谁能告诉我怎么样?

1 个答案:

答案 0 :(得分:2)

最简单的方法是使用子模块,然后为blit()创建一个新循环 - 进入此暂停菜单的屏幕和事件处理。

(这只是方法论;这就是我工作的方式。)

更新:13/12/11

以下代码摘录来自“父”模块。这只是代码的循环部分。您正在寻找的是button.doAction(screen)行,它基本上告诉PyGame执行适用的子模块(不重要;您只需要像通常那样调用“子”函数)。

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() - 记住,这是[子模块]。[function] - 那么“child”中的循环将是:

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()

(当然,从这些示例中省略了很多代码;如果您想要分开整个文件,它们是over here on GitHub

让我知道是否还有更多问题,因为这可能会让你更加困惑......