0
私は1人のプレーヤーがスコア3に当たったらゲーム画面をGame Over Screenに変更しようとしています。私のポンファイルには次のものがあります。 Gameover_stateはグローバル変数です。画面は別のものに変更する方法を制御し、私の画面ファイルで画面を変更する特定のスコアを打った後
def main():
while running:
#Code and event based things
#if the score reaches 3, then the game is over
if player_paddle.score == 3 or ai_paddle.score == 3:
gameover_state = True
、私は私のGamestate画面でこれを持っている:
class GameScene(SceneBase):
def __init__(self):
SceneBase.__init__(self)
def ProcessInput(self, events, pressed_keys):
for event in events:
if event.type == pygame.KEYDOWN and event.key == pygame.K_RETURN:
# Move to the next scene when the user pressed Enter
self.SwitchToScene(GameOverScene())
if event.type == pygame.KEYUP:
print("You are hitting up!")
print(self.next)
def Update(self):
#pongtry4.main()
if pongtry4.gameover_state == True:
self.SwitchToScene(GameOverScene())
pongtry4.main()
def Render(self, screen):
# The game scene is just a blank blue screen
#screen.fill((0, 0, 255))
pass
私はデバッグを試みたし、私のgameover_stateは、最終的には、AIやプレイヤーのいずれかの後にtrueを返しますしかし、gamestateは画面上のゲームに適切に変化しません。問題は、pongtry4.main()などの呼び出し順序ですか?ありがとう。あなたは、main関数内でこれを実装することができ
loop = True # This Variable is global
loop2 = True
while loop:
GameScene.processInput(# args)
GameScene.Update(# args)
GameScene.render(# args)
''' Inside the function, once a certain score is reached, loop is declared
false'''
while loop2:
# place other scene here
pygame.quit()
、それのthats:あなたは何ができるか
異なる変数に値を表示し、コードのどの部分を実行するかは 'print()'を使ってください。コード内で何が起こっているのかを確認するのに役立ちます。 – furas
プログラムをコピーして実行してテストできる[最小限の、完全で検証可能な例](https://stackoverflow.com/help/mcve)にすることによって、私たちを助けなければなりません。あなたのコードは動作します。 – skrx
私は以前の質問でコードをチェックしたのですが、なぜ 'pongtry4.main()'を使うのかわかりません - それは 'ProcessInput() '、' Update() '、' Render ) ' – furas