我用 Pygame Zero 和 MU IDE 創(chuàng)建了一個小游戲。游戲結束后,應詢問用戶是否想再玩一次。如果他選擇是,游戲應該從頭開始。我知道我可以用一個 While 循環(huán)來做到這一點,但我不知道怎么做。我試圖插入一個while循環(huán)。在 while 循環(huán)中,游戲函數(shù)被調用,但它不起作用。我試過這個:play_again = raw_input("If you'd like to play again, please type 'yes'")while playagain == "yes" draw() place_banana() on_mouse_down(pos) update_time_left()....我知道這是不正確的,但我不知道如何正確地做from random import randint import timeimport pygameHEIGHT = 800WIDTH = 800score = 0 time_left = 10banana = Actor("banana")monkey = Actor("monkey")def draw(): screen.clear() screen.fill("white") banana.draw() monkey.draw() screen.draw.text("Number of bananas collected: " + str(score), color = "black", topleft=(10,10)) screen.draw.text("Time: " + str(time_left), color = "black", topleft=(10,50))def place_banana(): banana.x = randint(125, 790) banana.y = randint(186, 790) monkey.x = 50 monkey.y = 740def on_mouse_down(pos): global score if banana.collidepoint(pos): score = score + 1 place_banana() def update_time_left(): global time_left if time_left: time_left = time_left - 1 else: screen.fill("pink") # code is not executed game_over() place_banana() clock.schedule_interval(update_time_left, 1.0)def game_over(): screen.fill("pink") # code is not executed global time_left message = ("Ende. Number of bananas collected") # code is not executed time_left = 0 time.sleep(5.5) quit()
1 回答
守候你守候我
TA貢獻1802條經驗 獲得超10個贊
一個肯定會阻止您的代碼運行的問題是您建議的 while 循環(huán)中所有四個函數(shù)末尾的冒號。冒號用于定義函數(shù)或 if/else 語句等,而不是用于執(zhí)行函數(shù)。
我不確定是否還有其他問題阻止它運行,因為您沒有提供所有源代碼,但是您的 while 循環(huán)應該如下所示:
play_again = "yes"
while playagain == "yes":
draw()
place_banana()
on_mouse_down(pos)
update_time_left()
play_again = raw_input("If you'd like to play again, please type 'yes'")
另一件事是,對 pygame 程序使用 shell 輸入并不是最好的,因為通常用戶不會知道要查看終端,因此請研究將輸入構建到游戲實際 UI 中的選項。
編輯:感謝 chepner 指出缺少的重新分配play_again
添加回答
舉報
0/150
提交
取消
