1 回答

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊
不要pygame.font.Font在每一幀中創(chuàng)建對象,也不要在每一幀中渲染文本。在程序開始時(shí)或在類的構(gòu)造函數(shù) ( )中創(chuàng)建一次文本Surface 。__init__只是每幀中的blit文本Surface:
初始化時(shí):
font = pygame.font.SysFont("Comic Sans MS", 180)
color = (0,60,20)
text_surface = font.render("Title", False, color)
每幀一次:
screen.blit(text_surface, (480,0))
如果文本是動態(tài)的,則甚至無法預(yù)渲染。然而,最耗時(shí)的是創(chuàng)建pygame.font對象。至少,您應(yīng)該避免在每個(gè)框架中創(chuàng)建字體。
在典型的應(yīng)用程序中,您不需要字體和字體大小的所有排列。您只需要幾個(gè)不同的font對象。在應(yīng)用程序開始時(shí)創(chuàng)建多種字體,并在渲染文本時(shí)使用它們。例如:
fontComic40 = pygame.font.SysFont("Comic Sans MS", 40)
fontComic180 = pygame.font.SysFont("Comic Sans MS", 180)
# [...]
添加回答
舉報(bào)