Загрузка данных


import pygame

# ==================== ИНИЦИАЛИЗАЦИЯ ====================
pygame.init()
screen = pygame.display.set_mode((450, 740))
pygame.display.set_caption("Pygame 67")
clock = pygame.time.Clock()

# ==================== ЗАГРУЗКА РЕСУРСОВ ====================
icon = pygame.image.load('images/icon.png').convert_alpha()
pygame.display.set_icon(icon)

bg = pygame.image.load('images/fon.jpg').convert_alpha()
money = pygame.image.load('images/money.png').convert_alpha()

powerclick_img = pygame.transform.scale(
    pygame.image.load('images/powerclick.png').convert_alpha(),
    (125, 125)
)
pac_img = pygame.transform.scale(
    pygame.image.load('images/auto_click.png').convert_alpha(),
    (125, 125)
)

bg_sounds = pygame.mixer.Sound('sounds/bg.mp3')
# bg_sounds.play()

# ==================== ШРИФТЫ ====================
myfont = pygame.font.Font('fonts/font.otf', 30)
myfont2 = pygame.font.Font('fonts/font.otf', 15)

# ==================== ПЕРЕМЕННЫЕ ИГРОКА ====================
bal = 100
lvlclick = 1
lvlauto = 0

# ==================== ПЕРЕМЕННЫЕ МАГАЗИНА ====================
costPower = 10
costAuto = 100

# ==================== ТАЙМЕР (автоклик) ====================
timer = pygame.USEREVENT + 1
pygame.time.set_timer(timer, 1000)

# ==================== ФЛАГИ ДЛЯ ОДНОКРАТНОГО НАЖАТИЯ ====================
spaceClick = False
AClick = False
SClick = False

# ==================== ГЛАВНЫЙ ЦИКЛ ====================
running = True
while running:

    # ------------------------------------------------------------
    # 1. ОТРИСОВКА ФОНА
    # ------------------------------------------------------------
    screen.blit(bg, (0, 0))

    # ------------------------------------------------------------
    # 2. ЛЕВАЯ КНОПКА (улучшение силы клика)
    # ------------------------------------------------------------
    pole = pygame.Surface((150, 150))
    pole.fill(("White"))
    pole_txt = myfont2.render(f'Сила клика {costPower}$', True, ("Black"))
    pole_txt2 = myfont.render(f'A', True, ("Black"))
    power_txt = myfont2.render(f'Сила клика - {1*lvlclick}', True, ("Black"))

    pole.blit(power_txt, (5, 120))
    pole.blit(pole_txt, (5, 5))
    pole.blit(pole_txt2, (5, 30))
    screen.blit(pole, (50, 400))
    screen.blit(powerclick_img, (75, 400))

    # ------------------------------------------------------------
    # 3. ПРАВАЯ КНОПКА (улучшение автоклика)
    # ------------------------------------------------------------
    pole2 = pygame.Surface((150, 150))
    pole2.fill(("White"))
    pole_txt3 = myfont2.render(f'Сила автоклика {costAuto}$', True, ("Black"))
    pole_txt4 = myfont.render(f'S', True, ("Black"))
    power_txt2 = myfont2.render(f'Сила автоклика - {1 * lvlauto}', True, ("Black"))

    pole2.blit(power_txt2, (5, 120))
    pole2.blit(pole_txt3, (5, 5))
    pole2.blit(pole_txt4, (5, 30))
    screen.blit(pole2, (250, 400))
    screen.blit(pac_img, (275, 400))

    # ------------------------------------------------------------
    # 4. ЦЕНТРАЛЬНАЯ МОНЕТА (ОБЫЧНАЯ)
    # ------------------------------------------------------------
    # обычная монета — рисуется всегда
    BigMoney = pygame.transform.scale(money, (200, 200))
    screen.blit(BigMoney, (125, 150))

    # ------------------------------------------------------------
    # 5. БАЛАНС (верхний правый угол)
    # ------------------------------------------------------------
    rectangle = pygame.Surface((200, 30))
    rectangle.fill(("White"))
    text_surface = myfont.render(f'Баланс: {bal}$', True, ("Black"))
    rectangle.blit(text_surface, (5, 5))
    screen.blit(rectangle, (250, 0))

    # ------------------------------------------------------------
    # 6. ОБРАБОТКА НАЖАТИЙ КЛАВИШ
    # ------------------------------------------------------------
    keys = pygame.key.get_pressed()
    spacePress = keys[pygame.K_SPACE]
    APress = keys[pygame.K_a]
    SPress = keys[pygame.K_s]

    # КЛИК ПО МОНЕТЕ (пробел)
    if spacePress and not spaceClick:
        bal += 1 * lvlclick
        # УВЕЛИЧЕННАЯ ВЕРСИЯ — рисуется ПОВЕРХ обычной монеты (только в этом кадре)
        BigMoneyBig = pygame.transform.scale(money, (250, 250))
        screen.blit(BigMoneyBig, (110, 131))

    # ПОКУПКА СИЛЫ КЛИКА (клавиша A)
    elif APress and not AClick and bal >= costPower:
        lvlclick += 1
        bal -= costPower
        costPower += round(costPower / 10)

    # ПОКУПКА АВТОКЛИКА (клавиша S)
    elif SPress and not SClick and bal >= costAuto:
        lvlauto += 1
        bal -= costAuto
        costAuto += round(costAuto / 10)

    # обновляем флаги для следующего кадра
    spaceClick = spacePress
    AClick = APress
    SClick = SPress

    # ------------------------------------------------------------
    # 7. ОБНОВЛЕНИЕ ЭКРАНА
    # ------------------------------------------------------------
    pygame.display.update()
    clock.tick(20)

    # ------------------------------------------------------------
    # 8. ОБРАБОТКА СОБЫТИЙ (автоклик, выход)
    # ------------------------------------------------------------
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
            pygame.quit()

        if lvlauto > 0 and event.type == timer:
            bal += 1 * lvlauto