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() # бум…
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 — выйти.