![](/img/trans.png)
[英]pygame window automatically exits after pygame.display.update(). How to prevent?
[英]How to update pygame window display after condition is met?
我有一些 pygame 窗口的代碼:
while True:
try:
gameDisplay.fill(white)
mouse = pygame.mouse.get_pos()
click = pygame.mouse.get_pressed()
except Exception:
pass
a=button("Enter",100,150,100,50,darkgreen,green,"play")
button("Exit",450,150,100,50,darkred,red,"quit")
for event in pygame.event.get() :
if event.type == pygame.QUIT :
pygame.quit()
pygame.display.update()
#if a == False:
#pygame.quit()
它顯示了 2 個可以點擊的按鈕(由按鈕功能創建)。 單擊綠色按鈕時,會出現一個 tkinter 輸入框。 在用戶輸入必要的東西並確認輸入有效后,該函數返回狀態(如果假用戶正確輸入了詳細信息)。 發生這種情況后,我想更改窗口顯示的內容並顯示完全不同的內容。 “a”(狀態)的最初目的是在驗證輸入后關閉窗口並打開一個新窗口,但是經過研究我發現您不能在同一個腳本中打開兩個窗口。
我試過這個:
if a == False:
gameDisplay.fill(white)
gameDisplay.blit(image1, (50, 0))
gameDisplay.blit(image2, (50, 100))
gameDisplay.blit(image3, (50, 200))
gameDisplay.blit(image4, (50, 300))
gameDisplay.blit(image5, (120, 100))
gameDisplay.blit(image6, (120, 200))
gameDisplay.blit(image7, (130, 260))
gameDisplay.blit(image8, (130, 290))
gameDisplay.blit(image9, (130, 320))
gameDisplay.blit(text, (0,0))
gameDisplay.blit(text2, (200,385))
gameDisplay.blit(text3, (200,369))
gameDisplay.blit(text4, (300,25))
gameDisplay.blit(text5, (300,100))
gameDisplay.blit(image16, (300, 45))
gameDisplay.blit(image17, (350, 45))
gameDisplay.blit(text6, (300, 170))
gameDisplay.blit(image10, (300, 120))
gameDisplay.blit(image11, (350, 120))
gameDisplay.blit(image12, (400, 120))
gameDisplay.blit(image13, (450, 120))
gameDisplay.blit(image14, (500, 120))
gameDisplay.blit(image15, (550, 120))
gameDisplay.blit(image19, (300, 190))
gameDisplay.blit(image20, (350, 190))
pygame.display.update()
並將其放在第二個按鈕功能之后但不起作用。 有任何想法嗎?
對於 Pygame,盡量保持在一個循環中。 根據情況,顯示按鈕或玩游戲。
試試這個代碼:
a = True # show buttons
while True:
try:
gameDisplay.fill(white)
mouse = pygame.mouse.get_pos()
click = pygame.mouse.get_pressed()
except Exception:
pass
if a == True: # keep showing buttons until user clicks one
a=button("Enter",100,150,100,50,darkgreen,green,"play")
button("Exit",450,150,100,50,darkred,red,"quit")
if a == False: # run game
gameDisplay.fill(white)
gameDisplay.blit(image1, (50, 0))
...........
gameDisplay.blit(image19, (300, 190))
gameDisplay.blit(image20, (350, 190))
for event in pygame.event.get() :
if event.type == pygame.QUIT :
pygame.quit()
pygame.display.update()
#if a == False:
#pygame.quit()
pygame.display.update()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.