亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

pygame.display.update() 不能很好地工作

pygame.display.update() 不能很好地工作

翻閱古今 2023-10-06 18:46:49
我正在 Mac 上編寫 pygame 程序。然后,有一個問題。我編寫了如下代碼,但是 pygame.display.update() 不起作用。它應該更新并等待 3 秒,但它先等待 3 秒,然后在 pygame.quit() 之后更新。誰能告訴我如何解決這個問題?這不起作用:import pygameimport syspygame.init()win = pygame.display.set_mode((500, 500))pygame.display.set_caption("hello")font = pygame.font.SysFont("comicsans", 100)text = font.render("hello", 1, (255, 255, 255))win.blit(text, (200, 200))pygame.display.update()pygame.time.delay(3000)pygame.quit()sys.exit(0)這可以正常工作:import pygameimport syspygame.init()win = pygame.display.set_mode((500, 500))pygame.display.set_caption("hello")font = pygame.font.SysFont("comicsans", 100)text = font.render("hello", 1, (255, 255, 255))win.blit(text, (200, 200))pygame.display.update()pygame.quit()pygame.time.delay(3000)sys.exit(0)操作系統:MacPython 版本 3.8.3Pygame 版本 1.9.6編輯器:Jupyter Notebook
查看完整描述

1 回答

?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

問題出在 MacOS(以及可能的其他操作系統)上,屏幕僅在檢查 pygame 事件后更新。

通常,這是通過調用pygame.event.get()或 來完成的pygame.event.poll()

但是,如果您的程序不關心檢查事件,那么調用pygame.event.pump()也可以。

pygame.event.pump()鏈接文檔中簡要提到了這個問題。

事件隊列中有一些重要的事情必須在內部處理。主窗口可能需要重新繪制或響應系統。如果您長時間未能調用事件隊列,系統可能會認為您的程序已鎖定。

所以解決方案是在 后調用pygame.event.pump()(或另一個事件函數)pygame.display.update()。

更正后的代碼將是:

import pygame

import sys


pygame.init()


win = pygame.display.set_mode((500, 500))

pygame.display.set_caption("hello")

font = pygame.font.SysFont("comicsans", 100)

text = font.render("hello", 1, (255, 255, 255))

win.blit(text, (200, 200))

pygame.display.update()

pygame.event.pump() # Make sure events are handled

pygame.time.delay(3000)


pygame.quit()

sys.exit(0)


查看完整回答
反對 回復 2023-10-06
  • 1 回答
  • 0 關注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號