2016-04-16 264 views
1

Pygameとユーザーが実行するイベントを使用して複数の画面を作成するにはどうすればよいですか?Pygameを使用して複数の「ゲーム画面」を作成する

たとえば、2つのボタン( '開始'と '終了')を持つメニュー画面があり、ユーザーが '開始'をクリックすると、ゲーム内の次のものと同じウィンドウに新しい画面が表示されます。その画面から、別のボタンをクリックして別の画面に移動したり、メニューに戻るなどの操作を行うことができます。

答えて

3

各クラスがpygame.Surfaceのサブクラスであり、同じサイズディスプレイとして。次に、3つの変数TITLESCREEN、PLAYING、HIGHSCORESを持つことができ、キーを押すたびにそれらを変更することができます。次に、正しい画面をディスプレイに表示させることができます。

2

これは、任意のプログラム/言語と同じですが、単に現在のループを起動します。 この例を考えてみましょう:

FPS = 25 
MainLoop = True 
Loop1 = True   # Start app in Loop1 
Loop2 = False  # Loop2 is idle 

while MainLoop : 
    clock.tick(FPS) 
    pygame.event.pump() 
    keypress = pygame.key.get_pressed() 
    keypress_dn = tuple(x > y for x,y in zip(keypress, keypress_old)) 
    keypress_old = keypress 
    if Loop1: 
     if keypress_dn [pygame.K_ESCAPE] : 
      Loop1 = False 
      MainLoop = False 
     if keypress_dn [pygame.K_2] : # goto Loop2 
      Loop1 = False 
      Loop2 = True 
     ... 

    if Loop2: 
     if keypress_dn [pygame.K_ESCAPE] : 
      Loop2 = False 
      MainLoop = False 
     if keypress_dn [pygame.K_1] : # goto Loop1 
      Loop2 = False 
      Loop1 = True 
     ... 

    pygame.display.flip() 

pygame.quit() 

つまり、あなたのレンダリングを追加し、対応するループでキー入力をチェックします。ここで "2"を押すとループ2に進み、 "1"を押すとループ1に進みます。 "エスケープ"はループとメインループの両方を終了します。

関連する問題