К переменной score не добавляется единица. Как исправить это?

import pygame
import time
from pygame import time
pygame.init()
pygame.mixer.init()
pygame.mixer.init()
pygame.mixer.music.load('sounds/bg.mp3')
pygame.mixer.music.play()

pygame.mixer.music.set_volume(0.2)
clock = pygame.time.Clock()
window = pygame.display.set_mode((1280, 720))
runned = True
color_bg = 0
pygame.display.set_caption('My Game')
icon = pygame.image.load('png/icon.png').convert_alpha()
bg = pygame.image.load('png/bg.jpg').convert_alpha()
restart_button_BIG = pygame.image.load('png/restart_button.png')
restart_button = pygame.transform.rotozoom(restart_button_BIG, 0 , 0.6)

pygame.display.set_icon(icon)

#Переменные

fireball_BIG = pygame.image.load('png/fireball.png').convert_alpha()
fireball = pygame.transform.rotozoom(fireball_BIG, 0, 0.15)

player_BIG = pygame.image.load('png/right/1.png').convert_alpha()
player = pygame.transform.rotozoom(player_BIG, 0, 0.5)
player_cord = [500, 475]



sound = pygame.mixer.Sound('sounds/bg.mp3')

gameplay = True

right_2 = pygame.image.load('png/right/2.png').convert_alpha()
right_3 = pygame.image.load('png/right/3.png').convert_alpha()
right_4 = pygame.image.load('png/right/4.png').convert_alpha()

right_2_SMALL = pygame.transform.rotozoom(right_2, 0, 0.5)
right_3_SMALL = pygame.transform.rotozoom(right_3, 0, 0.5)
right_4_SMALL = pygame.transform.rotozoom(right_4, 0, 0.5)

left_2 = pygame.image.load('png/left/2.png').convert_alpha()
left_3 = pygame.image.load('png/left/3.png').convert_alpha()
left_4 = pygame.image.load('png/left/4.png').convert_alpha()

left_2_SMALL = pygame.transform.rotozoom(left_2, 0, 0.5)
left_3_SMALL = pygame.transform.rotozoom(left_3, 0, 0.5)
left_4_SMALL = pygame.transform.rotozoom(left_4, 0, 0.5)


fireball_cord = [0, 505]
fireball_speed = 10
score = 0

player_anim_count = 1

key = pygame.key.get_pressed()

is_jump = False
jump_count = 7
Fire_Run = True

label = pygame.font.Font('fonts/defeat.otf', 100)
lose_label = label.render('Вы проиграли!', False, 'white')
restart_label = label.render('Играть снова', False, 'blue')
score_label_text = label.render('Score:', False, 'blue')
score_label = label.render(str(score), False, 'blue')
restart_button_rect = restart_button.get_rect(topleft=(250, 300))


#Функции
pygame.time.set_timer(pygame.USEREVENT, 20000)








def MoveRight():
    global player_anim_count
    global player_cord
    global player


    player_cord[0] += 19

    if player_anim_count == 4:
        player_anim_count = 1
    else:
        player_anim_count += 1

    if player_anim_count == 2:
        player = right_2_SMALL
    elif player_anim_count == 3:
        player = right_3_SMALL
    elif player_anim_count == 4:
        player = right_4_SMALL


def MoveLeft():
    global player_anim_count
    global player_cord
    global player



    if player_anim_count == 4:
        player_anim_count = 1
    else:
        player_anim_count += 1

    if player_anim_count == 2:
        player = left_2_SMALL
    elif player_anim_count == 3:
        player = left_3_SMALL
    elif player_anim_count == 4:
        player = left_4_SMALL

    player_cord[0] -= 19


while runned:
    window.blit(bg, (0, 0))
    window.blit(fireball, (fireball_cord))
    window.blit(player, (player_cord))
    window.blit(score_label_text, (0,0))
    window.blit(score_label, (250,0))



    player_rect = player.get_rect(topleft=(player_cord))
    fireball_rect = fireball.get_rect(topleft=(fireball_cord))

    if fireball_rect.colliderect(player_rect):
        gameplay = False

    if gameplay:


        if player_cord[1] > 475:
            player_cord[1] = 475

        keys = pygame.key.get_pressed()



        if fireball_cord[0] < 1250:
            score += 1
            fireball_cord[0] += fireball_speed


        else:
            fireball_cord[0] = 0

        if not is_jump:
            if keys[pygame.K_SPACE]:
                is_jump = True

        if is_jump:
            if jump_count >= -7:
                if jump_count > 0:
                    player_cord[1] -= (jump_count ** 2) / 1
                else:
                    player_cord[1] += (jump_count ** 2) / 1
                jump_count -= 1
            else:
                is_jump = False
                jump_count = 7



        if keys[pygame.K_d]:
            MoveRight()
        elif keys[pygame.K_a]:
            MoveLeft()
    else:
        window.fill((59, 54, 61))
        window.blit(lose_label, (350, 100))
        window.blit(restart_button, (restart_button_rect))
        window.blit(restart_label, (350,400))

        mouse = pygame.mouse.get_pos()
        mouse_pressed = pygame.mouse.get_pressed()[0]
        if restart_button_rect.collidepoint(mouse) and mouse_pressed:
            player_cord = [500, 475]
            fireball_cord = [0, 505]
            fireball_speed = 10

            gameplay = True


    pygame.display.update()

    for event in pygame.event.get():
        if event.type == pygame.USEREVENT:
            fireball_speed += 5
        elif event.type == pygame.QUIT:
            runned = False
            pygame.quit()


    clock.tick(20)

Ответы (1 шт):

Автор решения: wave_or_corpuscula

Как я понимаю, вопрос в том, почему значение переменной score не изменяется на экране. Сразу можно заметить, что вы, создаете label:

score_label = label.render(str(score), False, 'blue')

Размещаете его на экране:

window.blit(score_label_text, (0,0))

И больше он не изменяется. Чтобы изменение переменной score отобразилось на экране, нужно, после каждого изменения score перерисовывать ваш label.

→ Ссылка