Wiele wyświetlaczy w Pygame
Robię małą grę i chcę zrobić kolejne okno oddzielnie od mojego głównego.
Mam główną grę w głównym oknie i chcę otworzyć nowe okno i zrobić małą animację, gdy użytkownik coś zrobi.
W poniższym przykładowym kodzie, gdy użytkownik naciśnie „a”, chcę, aby otworzyło ono nowe okno i przejdzie do niego.
Tutaj ustawiam dwa okna: (wiem, że to nie działa, o co pytam, jak to zrobić)
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))
a następnie program:
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
Do tej pory rysuje główny ekran, a po naciśnięciu A przestaje rysować animacje na głównym ekranie, ale nadal rysuje inne animacje na głównym ekranie i rysuje w lewym górnym rogu.
Jestem pewien, że to robi, ponieważ ustawiamBATTLE_SCENE
być mniejszy niż główny ekran, a więc podczas blittingu naBATTLE_SCENE
pasuje do obszaru, który stworzyłem (240x160) w górnym rogu ekranu głównego.
Jakkolwiek chcęBATTLE_SCENE
być oddzielnym oknem, więc gdy nacisnę 'a', pojawi się, zrobi swoje, a następnie zamknij lub przynajmniej przejdź za główny ekran.
Jak to zrobić? Czy to możliwe?