Pygame中Trivia游戏解析6-2

3.1.2 读取保存题目的文件

在Trivia类的__init__()方法中,对各变量初始化完成之后,读取保存题目的文件,代码如下所示。

f = open(filename, "r", encoding='utf8')
trivia_data = f.readlines()
f.close()

其中,open()函数的作用是打开文件,该函数的第一个参数filename是Trivia类的参数,在定义该类的对象时指定,表示保存题目的文件名。

相关链接1

 《Python中文件的读取》

  《Python中读取与写入文件时的编码方式》

3.1.3 处理读取到的文件

在《Python中文件的读取》中提到,readlines()函数会读取每一行的换行符,因此需要将该符号去掉,代码如下所示。

for text_line in trivia_data:
    self.data.append(text_line.strip())
    self.total += 1

以行为单位,将数据添加到data中,每添加一行,total加1。

3.2 Trivia类的print_text()函数

该函数的作用是在指定的位置,以指定的字体、颜色和阴影效果显示指定的内容。代码如下所示。

def print_text(font, x, y, text, color=(255,255,255), shadow=True):
    if shadow:
        imgText = font.render(text, True, (0,0,0))
        screen.blit(imgText, (x-2,y-2))
    imgText = font.render(text, True, color)
    screen.blit(imgText, (x,y))

其中,参数font表示指定的字体;x和y表示指定位置;text表示指定内容,color表示指定颜色;shadow表示是否使用阴影效果,True表示使用,False表示不使用。在函数内部,如果shadow是True,则表示使用阴影效果,screen.blit()函数的x-2,y-2参数表示显示阴影(与最后一行代码中的screen.blit()函数配合使用)。

相关链接2:

《Pygame显示文字》

你可能感兴趣的:(Pygame入门,pygame,游戏,Trivia,显示文字,阴影效果)