Звук mashinka воспроизводится каждый раз, когда ты нажимаешь клавишу, и условие if zvuk <= 1: всегда выполняется, если zvuk не был установлен в значение больше 1. Это приводит к тому, что звук воспроизводится несколько раз, что создаёт эффект "наложения" звуков.
import pygame
import random
pygame.init()
screen = pygame.display.set_mode((1000,1000))
pygame.display.set_caption("The Shiter Drive 1.0.1")
icon = pygame.image.load("images/icon.png")
pygame.display.set_icon(icon)
car_x = 400
car_y = 750
car_speed = 10
c2_speed = 2.5
zvuk = 0
fon = pygame.image.load("images/fonofon.png")
car = pygame.image.load("images/car-up.png")
zastavochka = pygame.image.load("images/no.png")
pustinya = pygame.mixer.Sound("sounds/pustinya.mp3")
pustinya.play(-1)
mashinka = pygame.mixer.Sound("sounds/mashinka.mp3")
quiter = True
while quiter:
screen.blit(fon, (0,0))
screen.blit(car, (car_x, car_y))
screen.blit(zastavochka, (0,0))
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and car_x >= 0:
car = pygame.image.load("images/car-left.png")
car_x -= car_speed
if zvuk == 0:
mashinka.play(-1)
zvuk = 1
if keys[pygame.K_RIGHT] and car_x <= 800:
car = pygame.image.load("images/car-right.png")
car_x += car_speed
if zvuk == 0:
mashinka.play(-1)
zvuk = 1
if keys[pygame.K_UP]:
car = pygame.image.load("images/car-up.png")
car_y -= car_speed
if zvuk == 0:
mashinka.play(-1)
zvuk = 1
if keys[pygame.K_DOWN] and car_y <= 800:
car = pygame.image.load("images/car-down.png")
car_y += car_speed
if zvuk == 0:
mashinka.play(-1)
zvuk = 1
if keys[pygame.K_LEFT] and keys[pygame.K_UP] and car_x >= 0:
car = pygame.image.load("images/car-left-up.png")
car_x -= c2_speed
car_y -= c2_speed
if zvuk == 0:
mashinka.play(-1)
zvuk = 1
if keys[pygame.K_RIGHT] and keys[pygame.K_UP] and car_x <= 800:
car = pygame.image.load("images/car-right-up.png")
car_x += c2_speed
car_y -= c2_speed
if zvuk == 0:
mashinka.play(-1)
zvuk = 1
if keys[pygame.K_LEFT] and keys[pygame.K_DOWN] and car_x >= 0 and car_y <= 800:
car = pygame.image.load("images/car-left-down.png")
car_x -= c2_speed
car_y += c2_speed
if zvuk == 0:
mashinka.play(-1)
zvuk = 1
if keys[pygame.K_RIGHT] and keys[pygame.K_DOWN] and car_x <= 800 and car_y <= 800:
car = pygame.image.load("images/car-right-down.png")
car_x += c2_speed
car_y += c2_speed
if zvuk == 0:
mashinka.play(-1)
zvuk = 1
# Проверка, если ни одна из клавиш не нажата, то остановить звук
if not any(keys):
if zvuk == 1:
mashinka.stop()
zvuk = 0
pygame.display.update()
for event in pygame.event.get():
if event.type == pygame.QUIT:
quiter = False
pygame.quit()
КОД: