Fonts 在Pygame中,文本在顶部使用特定字体进行裁剪
我正在Pygame中制作一个神奇宝贝风格的对话框。我使用的是字体,但由于某种原因,文本在顶部被裁剪。看起来Fonts 在Pygame中,文本在顶部使用特定字体进行裁剪,fonts,pygame,Fonts,Pygame,我正在Pygame中制作一个神奇宝贝风格的对话框。我使用的是字体,但由于某种原因,文本在顶部被裁剪。看起来pygame.font.font.size无法正确计算渲染文本所需的Surface大小。 显示它应该是什么样子 导入pygame pygame.init() window=pygame.display.set_模式((640192)) 窗口填充((255,255,255)) POKEFONT=pygame.font.font(“口袋妖怪GB.ttf”,32) 位置=[[32,64],[36
pygame.font.font.size
无法正确计算渲染文本所需的Surface
大小。
显示它应该是什么样子
导入pygame
pygame.init()
window=pygame.display.set_模式((640192))
窗口填充((255,255,255))
POKEFONT=pygame.font.font(“口袋妖怪GB.ttf”,32)
位置=[[32,64],[36,128]]
lines=[“你好!”,“欢迎来到”]
对于拉链中的线、位置(线、位置):
text=POKEFONT.render(line,True,(0,0,0))
rect=text.get_rect()
rect.topleft=pos
blit(文本,矩形)
尽管如此:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
pygame.quit()
退出()
pygame.display.update()
字体看起来几乎相同,但渲染正确。发生了什么?解决方案是使用pygame.freetype,它从pygame 1.9.2开始提供 PKMN RBYGSC位于左侧,口袋妖怪GB位于右侧。感叹号穿过口袋妖怪GB中的最大上升线和基线(有关术语,请参阅)。看起来像是
pygame.font
忽略了那些行之外的任何内容,但是pygame.freetype
没有
此代码的修改版本提供了正确的结果:
import pygame.freetype
pygame.init()
window=pygame.display.set_模式((640192))
窗口填充((255,255,255))
POKEFONT=pygame.freetype.Font(“口袋妖怪GB.ttf”,32)
位置=[[32,64],[36,128]]
lines=[“你好!”,“欢迎来到”]
对于拉链中的线、位置(线、位置):
text,rect=POKEFONT.render(行,(0,0,0))
rect.topleft=pos
blit(文本,矩形)
尽管如此:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
pygame.quit()
退出()
pygame.display.update()