您的 PyGame 專案旨在使用 pygame.draw.rect() 創建一個灰色底部和黑色頂部的背景功能。儘管以前使用此功能有成功的經驗,但您仍會遇到不一致的繪圖結果。有時,您會看到黑屏,而其他時候,螢幕上會出現部分灰色矩形。
造成混亂的原因在於,僅繪圖不會在 PyGame 中產生可見輸出。修改關聯的表面後,您需要更新顯示以使這些變更可見。
繪圖發生在與 PyGame 顯示關聯的 Surface 物件上。但是,這些變更不會自動反映在顯示中。要使它們可見,您必須使用 pygame.display.update() 或 pygame.display.flip() 明確更新顯示。
pygame.display.flip() 更新整個顯示,而 pygame.display.update() 為螢幕的特定區域提供更具選擇性的更新。它通常針對軟體顯示器進行了更優化,但不支援硬體加速顯示。
典型的PyGame 應用程式循環由幾個步驟組成:
以下是包含顯示更新的修改後的程式碼:
import pygame from pygame.locals import * pygame.init() DISPLAY = pygame.display.set_mode((800,800)) pygame.display.set_caption("thing") clock = pygame.time.Clock() run = True while run: # handle events for event in pygame.event.get(): if event.type == QUIT: run = False # clear display DISPLAY.fill(0) # draw scene pygame.draw.rect(DISPLAY, (200,200,200), pygame.Rect(0,400,800,400)) # update display pygame.display.flip() # limit frames per second clock.tick(60) pygame.quit() exit()
透過合併必要的修改後的程式碼:
透過合併必要的修改後的程式碼:透過合併必要的修改後的程式碼:透過合併必要的修正顯示更新,您現在應該看到預期的背景,底部為灰色,頂部為黑色。以上是為什麼我的 PyGame 程式碼沒有繪製任何內容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!