🎮 Все игры 🐱 Ловкий кот
1 2 3 4 5 6
Урок 6 · финал

Звуки — и игра готова!

Что ты увидишь Поймал яблоко — весёлый «дзынь». Промахнулся — низкий звук. Это финальная версия игры. Файл: catch.py
⚠️ Нужны картинки и звуки Рядом с кодом — папка assets (cat.png, apple.png, catch.wav, miss.wav). Качай весь проект архивом.
⬇️ Весь проект архивом только код игры

📝 Что добавляем

pygame.init()
pygame.mixer.init()            # включаем звук

# Загружаем звуки (лежат в assets рядом с кодом)
catch_sound = pygame.mixer.Sound(os.path.join(HERE, "assets", "catch.wav"))
miss_sound = pygame.mixer.Sound(os.path.join(HERE, "assets", "miss.wav"))

# ... когда поймали ...
        score += 1
        catch_sound.play()        # дзынь!

# ... когда промахнулись ...
        lives -= 1
        miss_sound.play()         # бум…

🔍 Что тут происходит

Звук в три шага

1. mixer.init() 2. Sound("файл.wav") 3. .play()

pygame.mixer.init() включает звуковую систему один раз в начале. pygame.mixer.Sound(...) загружает звук из файла. А .play() проигрывает его в нужный момент — когда поймали или промахнулись.

Откуда взялись звуки

catch.wav и miss.wav мы сделали заранее. Это короткие сигналы. Ты можешь записать свои звуки (например голосом «мяу!») и положить в assets под теми же именами.

🏆 Поздравляю! Ты собрал игру с плавным движением, столкновениями, очками, жизнями, картинками и звуком. Это уже настоящая аркада!

🚀 Что дальше — задания со звёздочкой

ИдеяЧему научишься
Бомба 💣 — поймал, минус жизньвторой падающий объект, другой список
Золотое яблоко — +5 очковразные типы предметов
Рекорд в файлработа с файлами
Фон-картинка вместо заливкиещё один blit
Музыка фоном (mixer.music)длинные звуки

🖥️ Полный экран

Чтобы игра ощущалась как настоящая — разверни её на весь монитор. Мы добавили флаг pygame.SCALED и две клавиши:

screen = pygame.display.set_mode((WIDTH, HEIGHT))
fullscreen = False

# ... в цикле событий ...
if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_f:                 # F — вкл/выкл полный экран
        fullscreen = not fullscreen
        flags = (pygame.SCALED | pygame.FULLSCREEN) if fullscreen else 0
        screen = pygame.display.set_mode((WIDTH, HEIGHT), flags)
    elif event.key == pygame.K_ESCAPE:
        pygame.quit(); sys.exit()             # ESC — выход

pygame.SCALED сам растягивает картинку 600×400 на весь экран — координаты в игре остаются те же, ничего пересчитывать не надо. F — включить/выключить полный экран, ESC — выйти.

← НазадУрок 5 — Картинки