Звуковые эффекты не воспроизводятся в течение нескольких секунд после нажатия 4 раза подряд?

Звуковые эффекты Pygame не воспроизводятся в течение нескольких секунд, если соответствующие кнопки (для воспроизведения звукового эффекта) нажимаются четыре раза подряд. Сейчас я пытаюсь экспериментировать с разными клавишами фортепиано.

Я попытался удалить объект часов pygame. Я попытался превратить Sound.play() в функцию, как указано в коде.

import pygame
pygame.init()

###LordKeys###

A5 = pygame.mixer.Sound('PianoKeys/A5.wav')
A6 = pygame.mixer.Sound('PianoKeys/A6.wav')


def A56():
    A5.play()
    A6.play()

###############################################
run = True
win = pygame.display.set_mode((700,700))
pygame.display.set_caption("Piano Gen")
while run:
    win.fill((255,255,255))
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit()
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_a:
                A56()

    pygame.display.update()

Ожидаемые результаты: звуковой эффект, воспроизводимый при нажатии клавиши, независимо от частоты.


person Tay    schedule 27.07.2019    source источник


Ответы (2)


Для воспроизведения звука необходимо использовать функцию «Звук». Созданная вами звуковая переменная не имеет функции play().

Заменять

A5.play()
A6.play()

с

pygame.mixer.Sound.play(A5)
pygame.mixer.Sound.play(A6)
person Ham Sandwich    schedule 27.07.2019
comment
к сожалению, это не работает, несмотря на замену соответствующих частей. Нажатие «a» пять раз по-прежнему воспроизводит его четыре раза. Однако, спасибо - person Tay; 27.07.2019

Поэтому я решил воспроизвести звуки на канале, и это решило проблему!

def A56():
    channel1.play(A5)
    channel1.play(A6)
person Tay    schedule 28.07.2019