我正在使用PyGame1.9.6和Python3.7.4。我正在为太空入侵者制作一个标题屏幕。但当我运行调用运行字体的函数的代码时,它会显示:
screen.blit(cover_font, (150, 250))
TypeError: argument 1 must be pygame.Surface, not pygame.font.Font
因此,我在另外三个场合显示了文本,代码中没有问题
以下是其他三种字体显示:
# Score
score_value = 0
font = pygame.font.Font('freesansbold.ttf', 32)
# Game Over Text
over_font = pygame.font.Font('freesansbold.ttf', 64)
# Paused
paused_font = pygame.font.Font('freesansbold.ttf', 64)
def game_paused():
paused_text = paused_font.render("Paused", True, (255, 255, 255))
screen.blit(paused_text, (275, 250))
def show_score(x, y):
score = font.render("Score: " + str(score_value), True, (255, 255, 255))
screen.blit(score, (x, y))
def game_over_text():
over_text = over_font.render("GAME OVER", True, (255, 255, 255))
screen.blit(over_text, (200, 250))
但出于某种原因,它会弹出此代码的错误:
# Cover Text
cover_font = pygame.font.Font('freesansbold.ttf', 64)
def cover_text():
cover = cover_font.render("SPACE INVADERS", True, (0, 0, 0))
screen.blit(cover_font, (150, 250))
所以我根本不知道问题是什么。代码在所有级别上基本相同。我只是在游戏中的不同时间调用字体。所以我一如既往地感谢你的建议。多谢各位
您无意中尝试对字体对象而不是曲面对象执行了blit操作。字体的名称为
cover_font
,而表面的名称为cover
:screen.blit(cover_font, (150, 250))
相关问题 更多 >
编程相关推荐