Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как сделать так, чтобы звук в PyGame только тогда, когда нажимается клавиша

Алексей Михайлов Знаток (457), на голосовании 1 неделю назад
Часть дела сделана, но есть проблема. Звук наслаивается друг на друга.
 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()
Вот часть кода отвечающая за звук
Голосование за лучший ответ
Валентин Артамонов Профи (594) 1 месяц назад
Поставь лайк если помог!

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()
Алексей МихайловЗнаток (457) 1 месяц назад
Прости, я новичок и немного не понял, можешь по подробнее объяснить или приставить мой код к твоему?
Валентин АртамоновПрофи (594) 1 месяц назад
Броу, это уже приставленный к твоему коду
Алексей Михайлов Знаток (457) Валентин Артамонов, а, пон, а можно я типа весь код игры скину а ты под строишь? Или я совсем подхренел?
Алексей МихайловЗнаток (457) 1 месяц назад
А не, стоп, я всë понял
Алексей МихайловЗнаток (457) 3 недели назад
Странно, только сейчас решил проверить, но не работает :(
Может я вам скину ссылку на файл с кодом игры?
Валентин АртамоновПрофи (594) 3 недели назад
дай где у тебя ошибка я исправлю
Похожие вопросы