您需要先創建字體,例如
myfont = pygame.font.SysFont(None,10) # use default system font, size 10
然後你可以做
mytext = myfont.render('Hello world', 1, (255, 100, 100))
最後你需要做塊mytext
你的面和更新,以顯示文本。
看一看Pygame的文檔以及在此:http://www.pygame.org/docs/ref/font.html
編輯:如果這是你的完整的腳本,你需要你的事件循環之前,初始化顯示:
screen = pygame.display.set_mode((300,300)) # create a 300x300 display
可以那麼你的blit文本到屏幕上:
screen.blit(mytext, (0,0)) # put the text in top left corner of screen
pygame.display.flip() # update the display
由於文字是靜態的,它不需要是你while True:
循環中無論是。您可以先顯示文字。如果您想根據事件更改文本,則應在循環內處理這些內容。
編輯2 回答您在評論部分中的錯誤消息,問題是因爲在您發出pygame.quit()
命令後,某些pygame命令仍在運行。原因是因爲你的break
命令只打破了for event...
循環,但你仍然在while True:
循環內,所以blit命令仍然會嘗試運行。
你可以這樣來做:
import pygame
pygame.init()
screen = pygame.display.set_mode((1200,600))
myfont = pygame.font.SysFont(None, 30)
mytext = myfont.render('Hello world', 1, (255, 100, 100))
running = True
while running:
for event in pygame.event.get():
if event.type==pygame.QUIT:
running=False
screen.fill((255, 255, 255))
screen.blit(mytext, (600, 300))
pygame.display.flip()
pygame.quit()
這應該工作,因爲主循環取決於running
是真實的。命中quit將此項設置爲false,因此腳本乾淨地退出while
循環,然後運行pygame.quit()
命令。
這是很好的,但是當我離開我的程序寫入: 回溯(最近通話最後一個): 文件 「d:\下載\ unim.py」,第11行,在 screen.blit(mytext的內容,(600300 )) pygame.error:display Surface quit –
knowledge
這可能是因爲你的blit行在你的'while'循環之後。這意味着,當你退出時,pygame退出,你退出循環,所以它執行下一部分代碼。很難說沒有你的代碼。 – elParaguayo
它是: 進口pygame的 pygame.init() 屏幕= pygame.display.set_mode((1200,600)) myfont = pygame.font.SysFont(無,30) mytext的= myfont.render(「世界,你好',1,(255,100,100)) while True: for pygame.event.get(): if event.type == pygame。QUIT: pygame.quit() 休息 screen.fill((255,255,255)) screen.blit(mytext的,(600,300)) pygame.display.flip() – knowledge