Pygame:更新分数时遇到问题

Pygame: Trouble with updating score

我正在创建一个唱首歌游戏,在刚开始的时候我正在制作你点击以增加金钱的整体按钮。虽然分数增加得很好,但当将分数传送到屏幕时,它不会更新分数,它只是将它放在前一个分数之上,如 here。 这是我的代码:

import pygame
import button

SCREEN_WIDTH = 700
SCREEN_HEIGHT = 900

pygame.init()
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption('Cocaine Clicker')
clock = pygame.time.Clock()
screen.fill('lightblue')
font = pygame.font.Font('Pacifico-Regular.ttf', 100)

score = 0
score_increase_factor = 1

def disp_score(score):
    score_surf = font.render(f'${score}', False, (0,0,0))
    score_rect = score_surf.get_rect(center = (350, 50))
    screen.blit(score_surf, score_rect)

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            exit()

    disp_score(score)

    if money_sprite.draw(screen):
        score = score + score_increase_factor
        print(score)

    pygame.display.update()
    clock.tick(60)

Button 是一个不同的文件,带有创建按钮机制的 class。 我是代码新手,所以如果您还需要其他任何东西,请询问,谢谢。

每次调用 'disp_score' 时,您都在绘制之前绘制的内容。您可以通过重绘屏幕来避免这种情况。他们在本文档的开头更深入地解释了这个概念:https://www.pygame.org/docs/tut/MoveIt.html