Мой счет отображается на экране и обновляется на секунду, а затем возвращается к 0, я проанализировал каждую часть своего кода и не могу найти, где он идет не так.
def collisions(score,screen, player, mobs, bullets, ai_settings, all_sprites, meteor_imgs):
hits = pygame.sprite.groupcollide(mobs, bullets, True, True)
for hit in hits:
score += 50
m = Mob(ai_settings, meteor_imgs)
all_sprites.add(m)
mobs.add(m)
draw_text(screen, "SCORE: " + str(score) , 20, 0,0, ai_settings)
hits = pygame.sprite.spritecollide(player, mobs, False)
if hits:
sys.exit()
Это мой основной цикл:
def run_game():
score = 0
gf.add_mobs(ai_settings, all_sprites, mobs, meteor_imgs)
while True:
clock.tick(FPS)
gf.update_screen(ai_settings, screen, all_sprites, background, background_rect)
gf.check_events(player, all_sprites, bullets)
gf.collisions(score, screen, player, mobs, bullets, ai_settings, all_sprites, meteor_imgs)
all_sprites.update()
pygame.display.flip()
run_game()
Счет должен увеличиваться на 50 каждый раз, когда я сбиваю моба, но он постоянно возвращается к нулю.