- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是一个奇怪的问题,因为我已经在同一个执行过程中使用了该字体,并且......在同一个函数中!
我用我的程序的一部分来解释自己:
def text(show_text, show_size, show_color, show_x, show_y):
fontObj = pygame.font.Font('Font.ttf',show_size) # The line 43
Load_text = fontObj.render(show_text,True,show_color,None)
render_text = Load_text.get_rect()
render_text.center = (show_x,show_y)
screen.blit(Load_text,render_text)
def checkmouse(t_text,size,px,py,color1,color2,window):
global p_x, p_y
px_min = px - (int(len(str(text))/2))
px_max = px + (int(len(str(text))/2))
py_min = py - 10
py_max = py + 10
if p_x >= px_min and p_x <= px_max and p_y >= py_min and p_y <= py_max :
text(t_text,size,color1,px,py) # The line 68
pygame.display.update()
else:
text(t_text,size,color2,px,py)
pygame.display.update()
问题就在这里:
if w == 'main':
sceen=pygame.display.set_mode((1920,1080), pygame.NOFRAME)
while w == 'main':
image(bg32_big,0,0)
Main = True
while Main :
checkmouse('Play',32,960,260,Dark_Blue,White,'load') # line 109
checkmouse('Quit',32,1520,740,Dark_Blue,White,'load')
这是我的“回溯”:
Traceback (most recent call last):
File "C:\Users\Cédric\3D Objects\_TAL WIP_\TAL 1 script\newfile.py", line 143, in <module>
Window('main')
File "C:\Users\Cédric\3D Objects\_TAL WIP_\TAL 1 script\newfile.py", line 109, in Window
checkmouse('Play',32,960,260,Dark_Blue,White,'load')
File "C:\Users\Cédric\3D Objects\_TAL WIP_\TAL 1 script\newfile.py", line 68, in checkmouse
text(t_text,size,color2,px,py)
File "C:\Users\Cédric\3D Objects\_TAL WIP_\TAL 1 script\newfile.py", line 43, in text
fontObj = pygame.font.Font('Font.ttf',show_size)
pygame.error: font not initialized
但这怎么可能呢?在同一个函数中,我之前使用过 text('正在加载,这可能需要一些时间...',15,Dark_Blue,240,240)
并且效果很好,那为什么呢?
PS:完整代码:
import time
spb = time.time()
#----+ Major Imports +----#
print('Loading pygame and other child modules :')
import pygame
import os, sys
pygame.init()
print('All modules was loaded succesfully !')
#---+ center windows +---#
os.environ['SDL_VIDEO_CENTERED'] = '1'
#-----+ ALL THE CONSTANTS FROM THE GAME +-----#
print('+*---------------*+')
print('Getting variables')
Dark_Blue = ( 0, 0, 128)
White = ( 255, 255, 255)
barPos = (40, 200)
barSize = (400, 25)
current_load = 'rien.png'
max_a = 3 # Numbur of pictures to convert
a=0
bar_percent = 0
display_percent = '0'
a_db,a_da,a_dif = 0,0,0
p_x,p_y = 0,0
show_size = 25
fontObj = pygame.font.Font('Font.ttf',show_size)
#------+ Loading window +------#
screen=pygame.display.set_mode((1,1), pygame.NOFRAME)
#-----+ ALL THE DEFINITIONS OF THE PROGRAM +-----#
print('Getting definitions')
def text(show_text, show_size, show_color, show_x, show_y):
fontObj = pygame.font.Font('Font.ttf',show_size)
Load_text = fontObj.render(show_text,True,show_color,None)
render_text = Load_text.get_rect()
render_text.center = (show_x,show_y)
screen.blit(Load_text,render_text)
def image(name,x,y):
screen.blit(name,(x,y))
def DrawBar(pos, size, borderC, barC, progress):
global screen
pygame.draw.rect(screen, borderC, (*pos, *size), 1)
innerPos = (pos[0]+3, pos[1]+3)
innerSize = ((size[0]-6) * progress, size[1] - 6)
pygame.draw.rect(screen, barC, (*innerPos, *innerSize))
# The Program draw a bar from the value that we give in 'progress'
# which is equal to a/max_a !
def checkmouse(t_text,size,px,py,color1,color2,window):
global p_x, p_y
px_min = px - (int(len(str(text))/2))
px_max = px + (int(len(str(text))/2))
py_min = py - 10
py_max = py + 10
if p_x >= px_min and p_x <= px_max and p_y >= py_min and p_y <= py_max :
text(t_text,size,color1,px,py)
pygame.display.update()
else:
text(t_text,size,color2,px,py)
pygame.display.update()
#---+ Needed for loading +---#
bg32 = pygame.image.load('sprites/bg32.png').convert_alpha()
bgbar = pygame.image.load('sprites/bgbar.png').convert_alpha()
outline = pygame.image.load('sprites/outline.png').convert_alpha()
title = pygame.image.load('sprites/loading_title.png').convert_alpha()
#---+ Program Heart +---#
def Window(w):
global screen,a,max_a,barPos,barSize,Very_Dark_Blue,borderColor,bg32,bgbar
global outline,title,current_load,a_dif,a_db,a_da,bar_percent
if w == 'first_load':
screen=pygame.display.set_mode((480,270), pygame.NOFRAME)
w = 'load'
if w == 'load':
print(current_load)
a_db = int(( a / max_a ) * 100)
a = a + 1
a_da = int(( a/max_a ) * 100)
a_dif = a_da - a_db
for i in range(0,a_dif):
image(bg32,0,0)
image(bgbar,40,200)
image(outline,0,0)
image(title,40,0)
bar_percent = bar_percent + 1
DrawBar(barPos, barSize, Dark_Blue, Dark_Blue, bar_percent/100)
display_percent = str(current_load) + ' - ' + str(bar_percent) + ' %'
text(display_percent,25,Dark_Blue,240,185)
text('Loading, this may take a few time...',15,Dark_Blue,240,240)
pygame.display.update()
if w == 'main':
sceen=pygame.display.set_mode((1920,1080), pygame.NOFRAME)
while w == 'main':
image(bg32_big,0,0)
Main = True
while Main :
checkmouse('Play',32,960,260,Dark_Blue,White,'load')
checkmouse('Quit',32,1520,740,Dark_Blue,White,'load')
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
Window(window)
pygame.quit()
print('+*---------------*+')
print('Loading window :')
#-----+ Loading window +-----#
current_load = 'Background.png'
Window('first_load')
background = pygame.image.load('sprites/Background.png').convert_alpha()
current_load = 'outline.png'
Window('load')
outline_big = pygame.image.load('sprites/outline.png').convert_alpha()
current_load = 'bg32.png'
Window('load')
bg32_big = pygame.image.load('sprites/bg32_big.png').convert_alpha()
print('All pictures was loaded succesfully !')
#---+ time debug +---#
spe = time.time()
spt = spe - spb
sptm = 0
while spt >= 60:
spt = spt - 60
sptm = sptm + 1
print('+*---------------------*+')
print('All ressources needed for the game was loaded in',sptm,'minutes and',spt,'seconds')
#-----+ and... +-----#
Window('main')
最佳答案
只是不要在主循环中调用pygame.quit()
:
while Main :
checkmouse('Play',32,960,260,Dark_Blue,White,'load')
checkmouse('Quit',32,1520,740,Dark_Blue,White,'load')
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
Window(window)
pygame.quit() # <-- don't do this
它会将字体模块(和其他模块)置于不再可用的状态。
关于python - “pygame 错误”: font not initialized.。在已使用的字体上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54677481/
我已经使用 vue-cli 两个星期了,直到今天一切正常。我在本地建立这个项目。 https://drive.google.com/open?id=0BwGw1zyyKjW7S3RYWXRaX24tQ
您好,我正在尝试使用 python 库 pytesseract 从图像中提取文本。请找到代码: from PIL import Image from pytesseract import image_
我的错误 /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference
我已经训练了一个模型,我正在尝试使用 predict函数但它返回以下错误。 Error in contrasts<-(*tmp*, value = contr.funs[1 + isOF[nn]])
根据Microsoft DataConnectors的信息我想通过 this ODBC driver 创建一个从 PowerBi 到 PostgreSQL 的连接器使用直接查询。我重用了 Micros
我已经为 SoundManagement 创建了一个包,其中有一个扩展 MediaPlayer 的类。我希望全局控制这个变量。这是我的代码: package soundmanagement; impo
我在Heroku上部署了一个应用程序。我正在使用免费服务。 我经常收到以下错误消息。 PG::Error: ERROR: out of memory 如果刷新浏览器,就可以了。但是随后,它又随机发生
我正在运行 LAMP 服务器,这个 .htaccess 给我一个 500 错误。其作用是过滤关键字并重定向到相应的域名。 Options +FollowSymLinks RewriteEngine
我有两个驱动器 A 和 B。使用 python 脚本,我在“A”驱动器中创建一些文件,并运行 powerscript,该脚本以 1 秒的间隔将驱动器 A 中的所有文件复制到驱动器 B。 我在 powe
下面的函数一直返回这个错误信息。我认为可能是 double_precision 字段类型导致了这种情况,我尝试使用 CAST,但要么不是这样,要么我没有做对...帮助? 这是错误: ERROR: i
这个问题已经有答案了: Syntax error due to using a reserved word as a table or column name in MySQL (1 个回答) 已关闭
我的数据库有这个小问题。 我创建了一个表“articoli”,其中包含商品的品牌、型号和价格。 每篇文章都由一个 id (ID_ARTICOLO)` 定义,它是一个自动递增字段。 好吧,现在当我尝试插
我是新来的。我目前正在 DeVry 在线学习中级 C++ 编程。我们正在使用 C++ Primer Plus 这本书,到目前为止我一直做得很好。我的老师最近向我们扔了一个曲线球。我目前的任务是这样的:
这个问题在这里已经有了答案: What is an undefined reference/unresolved external symbol error and how do I fix it?
我的网站中有一段代码有问题;此错误仅发生在 Internet Explorer 7 中。 我没有在这里发布我所有的 HTML/CSS 标记,而是发布了网站的一个版本 here . 如您所见,我在列中有
如果尝试在 USB 设备上构建 node.js 应用程序时在我的树莓派上使用 npm 时遇到一些问题。 package.json 看起来像这样: { "name" : "node-todo",
在 Python 中,您有 None单例,在某些情况下表现得很奇怪: >>> a = None >>> type(a) >>> isinstance(a,None) Traceback (most
这是我的 build.gradle (Module:app) 文件: apply plugin: 'com.android.application' android { compileSdkV
我是 android 的新手,我的项目刚才编译和运行正常,但在我尝试实现抽屉导航后,它给了我这个错误 FAILURE: Build failed with an exception. What wen
谁能解释一下?我想我正在做一些非常愚蠢的事情,并且急切地等待着启蒙。 我得到这个输出: phpversion() == 7.2.25-1+0~20191128.32+debian8~1.gbp108
我是一名优秀的程序员,十分优秀!