Mehrere Anzeigen in Pygame
Ich mache ein kleines Spiel und möchte ein anderes Fenster als das Hauptfenster machen.
Ich habe das Hauptspiel in einem Hauptfenster und möchte ein neues Fenster öffnen und eine kleine Animation machen, wenn der Benutzer etwas tut.
Wenn der Benutzer in meinem Beispielcode unten "a" drückt, möchte ich, dass es ein neues Fenster öffnet und dorthin blitzt.
Hier habe ich die beiden Fenster eingerichtet: (Ich weiß, dass dies nicht funktioniert. Ich frage, wie es geht.)
SCREEN_X = 400
SCREEN_Y = 400
BSCREEN_X = 240
BSCREEN_Y = 160
BATTLE_SCENE = pygame.display.set_mode((BSCREEN_X, BSCREEN_Y))
SCREEN = pygame.display.set_mode((SCREEN_X, SCREEN_Y))
und dann das programm:
def run_ani ():
#Do animation, blitting to BATTLE_SCENE
return
def main_game():
ending=False
while ending==False:
clock.tick(30)
for event in pygame.event.get():
if event.type == pygame.QUIT: ending=True
if event.type == KEYDOWN: # key down or up?
if event.key == K_ESCAPE:
ending=True # Time to leave
print("Stopped Early by user")
elif event.key == K_a:
run_ani()
#Normal screen motion, blitting to SCREEN
if ending: pygame.quit()
return
Bisher zeichnet dies den Hauptbildschirm. Wenn Sie A drücken, werden die Animationen des Hauptbildschirms nicht mehr gezeichnet, die anderen Animationen werden jedoch weiterhin auf dem Hauptbildschirm und in der oberen linken Ecke gezeichnet.
Ich bin mir ziemlich sicher, dass es das tut, weil ich einsetzeBATTLE_SCENE
kleiner sein als der Hauptbildschirm, also beim blitzen aufBATTLE_SCENE
Es passt zu dem Bereich, den ich erstellt habe (240x160), in der oberen Ecke des Hauptbildschirms.
Wie ich willBATTLE_SCENE
um ein separates Fenster zu sein, so dass, wenn ich 'a' drücke, es auftaucht, seine Sache macht, dann schließt oder zumindest hinter den Hauptbildschirm geht.
Wie macht man das? Ist es überhaupt möglich?