在pygame中模糊文本

时间:2013-06-19 02:04:24

标签: python string text pygame blit

我正在制作一个游戏来练习游戏,我正在创建一个高分屏幕,但我似乎无法正确地将文字搞定我想要的

这是高分方法

def high_screen(self):
    screen.blit(background,(0,0))
    myfont = pygame.font.SysFont("impact", 20)
    scorefile = open('highscores.txt', 'r')
    highscores = scorefile.read()
    label = myfont.render((highscores), 1, (0,0,0))
    screen.blit(label, (0, 0))

    self.back = pygame.image.load('resources/screen/back.png')
    self.back_r = self.back.get_bounding_rect()
    self.back_r.x,self.back_r.y = (100,600)
    screen.blit(self.back,(100, 600))
    screen.blit(self.player,(self.mouse_pos))
    if self.player_r.colliderect(self.back_r)and pygame.mouse.get_pressed()[0]:
        self.state = 1

这会从.txt文件中获取高分并将它们点亮但是当我希望每个分数从上面的分数下降约100个像素时它会在一行上显示它们

那么我该如何制作它以便从文件中分割文本并将每个得分降低100个像素?

谢谢

-Christian Careaga

3 个答案:

答案 0 :(得分:1)

以下是多行文字https://stackoverflow.com/a/15516132/341744

的示例

multiline text

答案 1 :(得分:0)

您可以为每个分数创建一个文件,然后执行以下操作:

screen.blit(label1, (0, 0))
screen.blit(labe2, (0, 100))
screen.blit(labe3, (0, 100))
#etc

答案 2 :(得分:0)

如果你的分数在一个假设如下的文件中:


得分1 - 10

得分2 - 23

得分3 - 34


然后您可以使用它将分数分成不同的文本

scorelist = [text.split('\n') for text in open('score.txt','r')]
##when you read the file from python you will get this string : score1 - 10\nscore2 - 23\nscore3 - 34

然后将其指向表面,请使用以下代码:

for i in enumerate(scorelist,1):
    surface.blit(i[1],(100,100+i[0]*100))