首页 > 解决方案 > Pygame:更新分数有问题

问题描述

我正在创建一个答题器游戏,并且刚开始时,我正在制作您单击以增加金钱的整体按钮。虽然分数增加得很好,但是当将分数传送到屏幕上时,它不会更新分数,它只是把它放在前面的分数上,就像这里一样。这是我的代码:

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 是一个不同的文件,它具有创建按钮机制的类。我是新来的代码,所以如果您需要其他任何东西,请询问,谢谢。

标签: pythonpygame

解决方案


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


推荐阅读