Python 3.x 有没有办法更改字体对象的rect属性?
问题是:我无法在德语文本中显示大写的变音符号(“Umlaut points”) 我想显示一个像“Übung”(英语练习/练习)这样的单词,但是顶部被切断,导致两个点没有显示,而是显示为“Ubung” 它不能是编码,因为小写字母Python 3.x 有没有办法更改字体对象的rect属性?,python-3.x,pygame,Python 3.x,Pygame,问题是:我无法在德语文本中显示大写的变音符号(“Umlaut points”) 我想显示一个像“Übung”(英语练习/练习)这样的单词,但是顶部被切断,导致两个点没有显示,而是显示为“Ubung” 它不能是编码,因为小写字母“ü”不会显示属性。尝试显示“Üü”结果为“Uü” 我有来自《用Python发明你自己的电脑游戏》第17章的MWE import pygame from pygame.locals import * # Set up pygame. pygame.init() # Se
“ü”
不会显示属性。尝试显示“Üü”
结果为“Uü”
我有来自《用Python发明你自己的电脑游戏》第17章的MWE
import pygame
from pygame.locals import *
# Set up pygame.
pygame.init()
# Set up the window.
windowSurface = pygame.display.set_mode((500, 400), 0, 32)
pygame.display.set_caption('Hello world!')
# Set up the colors.
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
# Set up the fonts.
basicFont = pygame.font.SysFont(None, 48)
# Set up the text.
text = basicFont.render('Hello Übungswörld!', True, GREEN, BLUE)
textRect = text.get_rect()
textRect.centerx = windowSurface.get_rect().centerx
textRect.centery = windowSurface.get_rect().centery
# Draw the white background onto the surface.
windowSurface.fill(WHITE)
# Get a pixel array of the surface.
pixArray = pygame.PixelArray(windowSurface)
pixArray[480][380] = BLACK
del pixArray
# Draw the text onto the surface.
windowSurface.blit(text, textRect)
# Draw the window onto the screen.
pygame.display.update()
# Run the game loop.
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
操作系统:MacOS 10.14.4
尝试的字体:系统字体(无)、“Palatino”、“Helveticatc”、“comicsansmsttf”
奇怪的是,当我在PyCharm中运行此代码时,ComicSans(“comicsansmsttf”)将呈现Ü,但Helvetica和Palatino不会显示点。问题不在于文本的
rect
pygame.font.font.render()
自动设置曲面大小,不会剪切部分字母
默认的pygame字体(将None
传递给SysFont
时使用的字体)可能不支持大写字母的dieresis
尝试传递不同的字体,如Arial或Times New Roman
basicFont = pygame.font.SysFont("Arial", 48)
我试过使用Arial和Times New Roman。两者都在大写字母上显示dieresis,但您当然可以选择另一个,只要它安装在您的系统上
有关更多信息:
告诉您哪个是默认的pygame字体pygame.font.get\u default\u font()
返回可用于pygame的字体列表pygame.font.get_font()