Загрузка данных
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