Estoy haciendo un pequeño juego y quiero hacer otra ventana aparte de la principal.Múltiples pantallas en Pygame
Tengo el juego principal en una ventana principal, y quiero abrir una nueva ventana y hacer una pequeña animación cuando el usuario hace algo.
En mi código de ejemplo a continuación, cuando el usuario presiona "a" quiero que abra una nueva ventana y blit hasta allí.
Aquí puedo configurar las dos ventanas: (Sé que esto no funciona, es lo que estoy preguntando cómo hacerlo)
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))
y luego el 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
Hasta ahora lo que hace esto es dibujar la pantalla principal, luego cuando se presiona A, deja de dibujar las animaciones de la pantalla principal, pero aún dibuja las otras animaciones en la pantalla principal y dibuja en la esquina superior izquierda.
estoy bastante seguro de que hace esto porque yo soy la creación BATTLE_SCENE
sea más pequeña que la pantalla principal, por lo tanto, cuando blitting a BATTLE_SCENE
que Blits a la zona creé (240x160) en la esquina superior de la pantalla principal.
Sin embargo, quiero que BATTLE_SCENE
sea una ventana separada, de modo que cuando presione 'a' aparezca, haga lo suyo, luego cierre o al menos vaya detrás de la pantalla principal.
¿Cómo hacer esto? ¿Es posible?
No debe hacer esto de todos modos –
¿Eso significa que hay una manera en que debería hacerlo? un poco más de explicación sería bueno :) – hammythepig
Haz un área en la ventana existente para las animaciones. –