更新乐谱守护者

时间:2014-07-08 19:01:01

标签: python python-2.7 pygame game-center

目前我在python的基本游戏GUI上更新得分时遇到了很多困难。

我目前的代码显示在左上角,分数显示为" O"。但是,对于整个程序,分数仍然保持在0(因为它只被渲染一次。我不确定如何不断重新评分以更新它?我已经尝试了很多方法并且没有成功。分数渲染的部分代码和我使用变量conlisionNumber跟踪分数的尝试是:

new = bears[:]
    for bear in new: #this makes a copy of the array
        if player.colliderect(bear):
            windowSurface.blit(bearImageTwo, bear)
            windowSurface.blit(playerImageTwo, player)

        def explosion():
            for bear in bears:
                if player.colliderect(bear) and (moveLeft == False and moveRight == False and moveUp == False and moveDown == False):
                    bears.remove(bear)
                    colisionNumber += 1

        if player.colliderect(bear) and (moveLeft == False and moveRight == False and moveUp == False and moveDown == False):
                t = Timer(1, explosion)
                t.start()

    scoreFont = pygame.font.SysFont("impact", 20)
    score = scoreFont.render("SCORE:" + str(colisionNumber), True, (192,192,192))
    windowSurface.blit(score, (10,10))

请注意:在程序开始时我放了:

global colisionNumber
colisionNumber = 0

这样做是因为如果我在爆炸中定义colisionNumber,那么colisionNumber变量中就不会定义score

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

colisionNumber = 0

def explosion():
    global colisionNumber
    colisionNumber += 1