Sto facendo un piccolo gioco e voglio creare un'altra finestra separatamente dalla mia principale.Visualizzazioni multiple in Pygame
Ho il gioco principale in una finestra principale, e voglio aprire una nuova finestra e fare una piccola animazione quando l'utente fa qualcosa.
Nel mio codice di esempio qui sotto, quando l'utente preme "a", desidero che apra una nuova finestra e faccia clic qui.
Qui ho istituito le due finestre: (so che questo non funziona, il suo quello che sto chiedendo come fare)
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))
e quindi il programma:
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
Finora ciò che fa è disegnare la schermata principale, quindi quando viene premuto A, smette di disegnare le animazioni della schermata principale, ma disegna ancora le altre animazioni sulla schermata principale e disegna nell'angolo in alto a sinistra.
Sono abbastanza sicuro che lo fa perché io pongo BATTLE_SCENE
per essere più piccola della schermata principale, quindi quando copiarlo sul video per BATTLE_SCENE
si Blits all'area ho creato (240x160) nell'angolo superiore della schermata principale.
Tuttavia voglio che BATTLE_SCENE
diventi una finestra separata, in modo che quando premo 'a' verrà visualizzato, farà il suo effetto, quindi chiuderà o almeno tornerà dietro la schermata principale.
Come fare questo? È possibile?
Non dovresti farlo comunque –
Significa che c'è un modo per farlo? un po 'più di spiegazione sarebbe bello :) – hammythepig
Crea un'area nella finestra esistente per le animazioni. –