Что означает эта ошибка? Ошибка Pygame: шрифт не инициализирован - PullRequest
1 голос
/ 01 мая 2019

Я сейчас делаю небольшую игру, но она показывает странное сообщение об ошибке.А именно:

'Pygame Error': Font Not Initialized

Что это значит?Обратите внимание, что я новичок.

Я использую Python3.

Это мой код:

import pygame, random, sys, os, time
import sys
from pygame.locals import *
WINDOWWIDTH = 800
WINDOWHEIGHT = 600
levens = 3
dead = False
Mousevisible = False

def terminate():
    pygame.quit()
    sys.exit()

def waitForPlayerToPressKey():
    while True:
        for event in pygame.event.get():
            if event.type == QUIT:
                terminate()
            if event.type == KEYDOWN:
                if event.key == K_ESCAPE: #escape quits
                    terminate()
                return

def drawText(text, font, surface, x, y):
    textobj = font.render(text, 1, TEXTCOLOR)
    textrect = textobj.get_rect()
    textrect.topleft = (x, y)
    surface.blit(textobj, textrect)
#fonts
font = pygame.font.SysFont(None, 30)

#def gameover():
    #if dead == True:
        #pygame.quit

# set up pygame, the window, and the mouse cursor
pygame.init()
mainClock = pygame.time.Clock()
windowSurface = pygame.display.set_mode((WINDOWWIDTH, WINDOWHEIGHT))
pygame.display.set_caption('hit the blocks')
pygame.mouse.set_visible(Mousevisible)

# "Start" screen
drawText('Press any key to start the game.', font, windowSurface, (WINDOWWIDTH / 3) - 30, (WINDOWHEIGHT / 3))
drawText('And Enjoy', font, windowSurface, (WINDOWWIDTH / 3), (WINDOWHEIGHT / 3)+30)
pygame.display.update()
waitForPlayerToPressKey()
zero=0

и это ошибка:

Traceback (most recent call last):
  File "C:\Users\flori\AppData\Local\Programs\Python\Python37-32\schietspel.py", line 30, in <module>
    font = pygame.font.SysFont(None, 30)
  File "C:\Users\flori\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pygame\sysfont.py", line 320, in SysFont
    return constructor(fontname, size, set_bold, set_italic)
  File "C:\Users\flori\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pygame\sysfont.py", line 243, in font_constructor
    font = pygame.font.Font(fontpath, size)
pygame.error: font not initialized

1 Ответ

1 голос
/ 01 мая 2019

Проблема в том, что вы устанавливаете шрифт перед инициализацией игры. Чтобы это исправить, переместите font = pygame.font.SysFont(None, 30) после pygame.init().

Кроме того, чтобы ваш код работал, вам также нужно определить TEXTCOLOR. Это должен быть кортеж со значениями RGB, например. TEXTCOLOR = (255, 255, 255) для белого (вы можете поставить его сверху с помощью WINDOWHEIGHT).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...