私は小さなゲームを作っていますが、メインのウィンドウとは別に別のウィンドウを作成したいと思います。
メインウィンドウにメインゲームがあり、新しいウィンドウを開いて、ユーザーが何かをしたときに少しアニメーションを作成したいと思います。
以下の私のサンプルコードでは、ユーザーが「a」を押したときに、新しいウィンドウを開いてそこにブリットします。
ここで2つのウィンドウを設定します:(これが機能しないことはわかっていますが、その方法を尋ねています)
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」を押すとポップアップが表示され、その処理を実行してから、閉じるか、少なくともメイン画面の後ろに移動します。
これを行う方法?それも可能ですか?