Múltiplas exibições no Pygame
Estou fazendo um joguinho e quero fazer outra janela separadamente da minha principal.
Eu tenho o jogo principal em uma janela principal, e eu quero abrir uma nova janela e fazer uma pequena animação quando o usuário fizer alguma coisa.
No meu código de exemplo abaixo, quando o usuário pressiona "a" eu quero que ele abra uma nova janela e blit para lá.
Aqui eu configurei as duas janelas: (Eu sei que isso não funciona, é o que eu estou perguntando como fazer)
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 depois o programa:
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
Até agora o que isto faz é desenhar a tela principal, então quando A é pressionado, ele pára de desenhar as animações da tela principal, mas ainda desenha as outras animações na tela principal e desenha no canto superior esquerdo.
Tenho certeza que faz isso porque estou definindoBATTLE_SCENE
para ser menor do que a tela principal, assim, quando blitting paraBATTLE_SCENE
Ele fica na área que criei (240 x 160) no canto superior da tela principal.
No entanto eu queroBATTLE_SCENE
para ser uma janela separada, de modo que quando eu pressionar 'a' ele irá aparecer, faça o que quiser, então feche ou pelo menos vá para trás da tela principal.
Como fazer isso? É mesmo possível?