使用Pygame制作多个“游戏画面”

时间:2016-04-16 17:08:47

标签: python pygame

您如何使用Pygame和用户执行的事件创建多个屏幕?

例如,如果我有一个带有2个按钮的菜单屏幕(“开始”和“退出”),并且用户单击“开始”,则会在同一窗口中显示一个新屏幕,其中包含游戏中的下一个按钮。在该屏幕上,用户可以点击另一个按钮并转到另一个屏幕/返回菜单等

3 个答案:

答案 0 :(得分:3)

为每个类创建类,其中每个类是pygame.Surface的子类,与显示的大小相同。然后你可以有三个变量TITLESCREEN,PLAYING,HIGHSCORES并在按键时更改它们。然后你就可以将正确的屏幕显示到显示屏上。

答案 1 :(得分:2)

与任何程序/语言相同,只需触发当前循环即可。 考虑这个例子:

FPS = 25
MainLoop = True
Loop1 = True         # Start app in Loop1
Loop2 = False        # Loop2 is idle 

while MainLoop :
    clock.tick(FPS)
    pygame.event.pump()
    keypress = pygame.key.get_pressed()
    keypress_dn  = tuple(x > y for x,y in zip(keypress, keypress_old))
    keypress_old = keypress
    if Loop1:
        if keypress_dn [pygame.K_ESCAPE] :
            Loop1 = False
            MainLoop = False
        if keypress_dn [pygame.K_2] :   # goto Loop2
            Loop1 = False
            Loop2 = True 
        ...

    if Loop2:
        if keypress_dn [pygame.K_ESCAPE] :
            Loop2 = False
            MainLoop = False
        if keypress_dn [pygame.K_1] :   # goto Loop1
            Loop2 = False
            Loop1 = True 
        ... 

    pygame.display.flip( )

pygame.quit( )

因此,您可以在相应的循环中添加渲染并检查按键。在这里按“2”进入loop2并按“1”进入循环1.“Escape”将退出循环和主循环。

答案 2 :(得分:0)

为此,我做了一个字面主循环,该循环检查播放器想要进入的“屏幕”。就像他们按下退出按钮一样,它返回下一步。然后,主循环为新屏幕运行新脚本。

相关问题