我正在制作一个小游戏,想要从主窗口中单独开启另一个窗口。
我将主要的游戏内容放在主窗口中,并希望在用户执行某些操作时打开一个新窗口并进行一些动画。
在下面的示例代码中,当用户按下“a”时,我希望它可以打开一个新窗口并在其中进行 blit 操作。
这里我设置了两个窗口:(我知道这不起作用,我正在询问如何实现)
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))
然后程序:
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
到目前为止,这段代码的作用是绘制主屏幕,然后当按下 A 键时,它停止了绘制主屏幕动画,但仍绘制主屏幕上的其他动画并在左上角绘制。我相当确定之所以会这样,是因为我将“BATTLE_SCENE”设置为小于主屏幕,因此在将图像绘制到“BATTLE_SCENE”时,它会在我创建的区域(240x160)顶部角落进行绘制。
然而,我希望“BATTLE_SCENE”成为一个单独的窗口,这样当我按下 "a" 键时,它将弹出,在其上执行操作,然后关闭或至少移到主屏幕后面。
如何做到这一点?这是否可能?