为什么pygame要播放一个不存在的声音?

2024-10-02 22:24:57 发布

您现在位置:Python中文网/ 问答频道 /正文

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

有一次,我包含了两个文件Monster.ogg和woodfrog.ogg,作为不同类的声音文件

这些文件现在都不存在了,在代码中没有引用,并且绝对删除了

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

我试过: -重新启动我的计算机(应该清除temp) -清除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()```

Tags: 文件theself游戏targetinitdefpygame