Почему Pygame пытается воспроизвести звук, который не существует? - PullRequest
0 голосов
/ 23 апреля 2019

Я разрабатываю игру и использую модуль pygame для запуска звука.

В какой-то момент я включил два файла, Monster.ogg и woodfrog.ogg, в качестве звуковых файлов для различных классов.

Эти файлы сейчас отсутствуют, в коде нет ссылок и удалены в абсолютном выражении.

По какой-то причине pygame.mixer.Sound продолжает ссылаться на них и вылетает из игры.

Я пробовал: - перезагрузка компьютера (который должен сбрасывать темп) - очистка pycache - переименование файлов и переменных - введение новых / рабочих звуковых файлов с одинаковыми именами (например, woodfrog.ogg и Monster.ogg)

Обратите внимание, что в приведенном ниже коде даже после того, как Monster's self.sound = "Monster.ogg" закомментирован, ошибка все равно возникает.

ошибка: newsound = pygame.mixer.Sound (self.target.sound) pygame.error: Невозможно открыть файл 'Sound / Monster.ogg'


class Player(object):
    def __init__(self):
       self.target = ""
       self.soundon = True



### RELEVANT METHOD ###
def playsound(self):
        newsound = ""
        if self.soundon:
            if self.target.sound and (self.target.sound != "Monster.ogg"):
                pygame.mixer.init()
                newsound = pygame.mixer.Sound(self.target.sound)
                pygame.mixer.Channel(0).play(newsound)
                time.sleep(2)
                pygame.mixer.Channel(0).stop()
                pygame.mixer.quit()

### RELEVANT CLASS ###
class Monster(Organism):
    def __init__(self):
        super().__init__()
        self.therm = "none"
        self.type = "Monster"
                ### THE self.sound SHOWN IS A NOW ABSENT LINE OF CODE IN 
                ###THE REAL SCRIPT; I'VE INCLUDED IT FOR USE IN ANSWERING 
                ### THE QUESTION
        #self.sound = "Monster.ogg"


newplayer = Player()
monster = Monster()

player.target = monster

player.playsound()```
...