目前我在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
。
非常感谢任何帮助。
答案 0 :(得分:1)
colisionNumber = 0
def explosion():
global colisionNumber
colisionNumber += 1