2016-04-16 12 views
1

Wie können Sie mit Pygame und Ereignissen, die vom Benutzer ausgeführt werden, mehrere Bildschirme erstellen?Mehrere Spielbildschirme mit Pygame erstellen

Zum Beispiel, wenn ich einen Menübildschirm mit 2 Tasten hatte ('Start' und 'Beenden') und der Benutzer auf 'Start' klickte, erschien ein neuer Bildschirm im selben Fenster mit dem nächsten im Spiel . Von diesem Bildschirm aus könnte ein Benutzer auf eine andere Schaltfläche klicken und zu einem anderen Bildschirm wechseln/zum Menü usw. zurückkehren.

Antwort

3

Für jede Klasse Klassen erstellen, wobei jede Klasse eine Unterklasse von pygame.Surface derselben Größe ist als die Anzeige. Dann könntest du 3 variable TITLESCREEN, PLAYING, HIGHSCORES haben und sie bei Tastendruck ändern. Dann wäre es möglich, den richtigen Bildschirm auf dem Display anzuzeigen.

2

Es ist dasselbe wie mit irgendeinem Programm/Sprache, Sie lösen einfach Stromschleife aus. dieses Beispiel vor:

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

Sie also Ihre Rendering hinzufügen und überprüfen Drücken von Tasten in entsprechender Schleife. Hier drücken Sie "2" um zu loop2 zu gehen und drücken Sie "1" um zu Loop 1 zu gelangen. "Escape" beendet beide Loops und Main Loop.