gpt4 book ai didi

python - pygame字体属性错误

转载 作者:行者123 更新时间:2023-12-01 09:11:58 26 4
gpt4 key购买 nike

import sys, pygame as pg, random




class Game:
def __init__(self):
#initialize game window, etc
pg.init()
pg.font.init()
pg.mixer.init()
self.screen = pg.display.set_mode((800, 600))
pg.display.set_caption('myFirstGame')
self.running = True
self.font_name = pg.font.match_font('calibri')


def new(self):
#resets the game
self.score = 0
self.run()

def run(self):
#game loop
self.playing = True
while self.playing:
self.draw()


def draw(self):
#game loop draw
self.screen.fill(0, 0, 0)

self.all_sprites.draw(self.screen)
self.draw_text(str(self.score), 22, white, 800 / 2, 20)
#after drawing everything, flip the display
pg.display.flip()



def draw_text(self, text, size, color, x, y):
font = pg.font.Font(self.font_name, size)
text_surface = font.render(text, True, color)
text_rect = text_surface.get_rect()
text_rect.midtop = (x, y)
self.screen.blit(text_surface, text_rect)

g = Game()
while g.running:
g.new()
g.show_go_screen()

pg.quit()

所以我正在遵循教程并收到此错误...

AttributeError:模块“pygame.font”没有属性“match_font”

我觉得这个错误与pygame的安装有关。我通过 MSVC 运行 python 并通过“ View ”>“其他 Windows”>“Python 环境”安装 Pygame ..我似乎无法让字体工作。我正在遵循一个教程,试图从中学习,甚至复制粘贴了为该教程的创建者工作的代码,并得到了相同的错误。谁能指出我正确的方向?

顺便说一句...它不是整个代码..我删除了很多与字体无关的内容..像宽度,屏幕等变量都是整个代码的有效变量。 FONT_NAME 在 settings.py 中定义为“calibri”,它与整个代码一起导入。

最佳答案

您正在学习的教程看起来不太好,有以下几点:

  • 如果您执行 pg.init() ( docs ),则无需执行 pg.font.init() ( SysFont )
  • 如果您要使用 Sysfont(如 calibri),则无需先执行 self.font_name = pg.font.match_font('calibri'),然后再执行 pg.font.Font(self.font_name,大小)。只需使用 mixer
  • self.all_sprites 在哪里定义?您在 draw 中使用它,但我看不到初始化在哪里。
  • 如果new()重置游戏,那么在游戏循环中调用它就没有多大意义。另外,如果 new() 重置游戏,为什么它会调用绘图函数?
  • mixer.pre_init() 用于声音。如果您不打算播放任何声音,则无需对其进行初始化。另外,如果你不想要声音延迟,你必须在 pg.init() 之前初始化它并使用 mixer.init()fill
  • show_go_screen 方法也缺失:/
  • https://github.com/Patataman/PythonBasic/tree/master/frameworks/pygame 方法未接收 (0,0,0),黑色应为 ((0,0,0))。
  • draw_text方法中,“white”不是一种颜色,而是一个变量。您应该改用 (255,255,255)

毕竟:我遇到的错误来自填充函数,而不是来自字体。

修复后,由于缺少我之前指出的变量/方法,我出现了错误。

解决完这一切之后。我没有任何错误。

如果你懂西类牙语,我有一个包含 pygame ojit_a 基础知识的存储库。如果没有,那么,也许你可以弄清楚xD

关于python - pygame字体属性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51585285/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com