Pygameとユーザーが実行するイベントを使用して複数の画面を作成するにはどうすればよいですか?Pygameを使用して複数の「ゲーム画面」を作成する
たとえば、2つのボタン( '開始'と '終了')を持つメニュー画面があり、ユーザーが '開始'をクリックすると、ゲーム内の次のものと同じウィンドウに新しい画面が表示されます。その画面から、別のボタンをクリックして別の画面に移動したり、メニューに戻るなどの操作を行うことができます。
Pygameとユーザーが実行するイベントを使用して複数の画面を作成するにはどうすればよいですか?Pygameを使用して複数の「ゲーム画面」を作成する
たとえば、2つのボタン( '開始'と '終了')を持つメニュー画面があり、ユーザーが '開始'をクリックすると、ゲーム内の次のものと同じウィンドウに新しい画面が表示されます。その画面から、別のボタンをクリックして別の画面に移動したり、メニューに戻るなどの操作を行うことができます。
各クラスがpygame.Surfaceのサブクラスであり、同じサイズディスプレイとして。次に、3つの変数TITLESCREEN、PLAYING、HIGHSCORESを持つことができ、キーを押すたびにそれらを変更することができます。次に、正しい画面をディスプレイに表示させることができます。
これは、任意のプログラム/言語と同じですが、単に現在のループを起動します。 この例を考えてみましょう:
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に進みます。 "エスケープ"はループとメインループの両方を終了します。