pygame为什么尝试播放不存在的声音?

时间:2019-04-23 01:09:39

标签: python caching audio pygame mixer

我正在开发游戏,并使用pygame模块运行声音。

有一次,我包括了Monster.ogg和woodfrog.ogg这两个文件,作为各种类的声音文件。

这些文件现在都不存在,在代码中未引用,并以绝对术语删除。

出于某种原因,pygame.mixer.Sound不断引用它们并崩溃了我的游戏。

我尝试过: -重新启动计算机(应该清除温度) -清除 pycache -重命名文件和变量 -引入具有相同名称(即woodfrog.ogg和Monster.ogg)的新的/有效的声音文件

在下面的代码中请注意,即使将Monster的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()```

0 个答案:

没有答案