我从网站上导入了一种自定义字体“ Celtic-Bit Thin”,以用于项目中。该文件具有pygame可以导入的正确扩展名(.ttf),但在使用时,仅显示显示的文本字符串的下半部分(您只能看到显示在文本字符串中的每个字母的下半部分)。我选择的字体)。我不确定字体或实现方式是否有问题。我尝试过:
gameFont = pygame.font.Sysfont("Celtic-Bit Thin", 24)
font.render("Hello world!", False, (0,0,0))
我也尝试用pygame.font.Font()
来做,但是那也不起作用。字体是否仅仅是与pygame不兼容,还是导入字体还有其他要求?
编辑:这是一个最小的可运行示例:
import pygame
pygame.init()
pygame.font.init()
screen = pygame.display.set_mode((800,600))
gameFont = pygame.font.SysFont("Celtic-Bit Thin", 36)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
runnung = False
screen.fill((255,255,255))
screen.blit(gameFont.render("Hello World!",False,(0,0,0)), (300, 300))
pygame.display.flip()
pygame.quit()
AND here是我下载字体的地方
答案 0 :(得分:0)
我不知道为什么要剪掉字体,但是我尝试使用pygame.freetype
模块而不是pygame.font
来呈现它,并且效果很好。
import pygame
import pygame.freetype # Import the freetype module.
pygame.init()
screen = pygame.display.set_mode((800,600))
gameFont = pygame.freetype.SysFont("Celtic-Bit Thin", 24)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((255,255,255))
# You can use `render` ...
text_surface, rect = gameFont.render("Hello World!", (0,0,0))
screen.blit(text_surface, (40, 250))
# or `render_to`.
gameFont.render_to(screen, (40, 350), "Hello World!", (0,0,0))
pygame.display.flip()
pygame.quit()