


Как сделать так, чтобы звук в PyGame только тогда, когда нажимается клавиша
Часть дела сделана, но есть проблема. Звук наслаивается друг на друга.
if keys[pygame.K_LEFT] or keys[pygame.K_RIGHT] or keys[pygame.K_UP] or keys[pygame.K_DOWN]:
mashinka.play(-1)
else:
mashinka.stop()
Вот часть кода отвечающая за звук
Поставь лайк если помог!
import pygame
import sys
# Инициализация Pygame
pygame.init()
# Создание окна
screen = pygame.display.set_mode((800, 600))
# Загрузка звука
mashinka = pygame.mixer.Sound('mashinka.wav')
# Флаг для отслеживания состояния звука
sound_playing = False
# Основной цикл игры
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Получение состояния клавиш
keys = pygame.key.get_pressed()
# Проверка нажатия клавиш
if keys[pygame.K_LEFT] or keys[pygame.K_RIGHT] or keys[pygame.K_UP] or keys[pygame.K_DOWN]:
if not sound_playing:
mashinka.play(-1) # Воспроизведение звука в цикле
sound_playing = True
else:
if sound_playing:
mashinka.stop() # Остановка звука
sound_playing = False
# Обновление экрана
pygame.display.flip()
# Завершение Pygame
pygame.quit()
sys.exit()