python - 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 是一个不同的文件,它具有创建按钮机制的类。我是新来的代码,所以如果您需要其他任何东西,请询问,谢谢。
解决方案
每次您调用“disp_score”时,您都在绘制之前绘制的内容。您可以通过重绘屏幕来避免这种情况。他们在本文档的开头更深入地解释了这个概念:https ://www.pygame.org/docs/tut/MoveIt.html
推荐阅读
- java - IntelliJ 注释包装
- elasticsearch - ElasticSearch - 如何按“date_range”排序
- html - 文本溢出:省略号和 Flexbox
- sql - 将 DATEDIFF 从 SQL Server 转换为 redshift
- mysql - 在mysql中创建数据库并授予语法错误
- python - DRF:深度 > 1 的嵌套序列化程序
- ios - UITableView scrollToRowAtIndexPath 不会触发 scrollViewDidEndScrollingAnimation
- python - 构建python scrapy程序后无法识别Item中的类
- python - tensorflow - 如何通过数据集 api 输入目录
- perl - 在 Perl 中发送文本附件的问题