我刚刚开始了一个小小的游戏项目,我试图让它在每次发射子弹时播放声音,但我一直都会遇到同样的错误:
pygame.error:调音台系统未初始化
我不知道我做错了什么,这是我的代码:
import pygame, sys
from pygame.locals import *
theClock = pygame.time.Clock()
sound = pygame.mixer.Sound("bullet.mp3")
...
if event.type == KEYDOWN:
if event.key == K_SPACE and shot_count == 0:
sound.play()
shot_y = h-50
shot_x = x
elif event.type == K_SPACE and shot_count == 1:
shot_y_2 = h-50
shot_x_2 = x
print(h, ' ', shot_y, shot_count)
if event.type == KEYUP:
if event.key == K_SPACE and shot_count == 0:
resetShot = 0
elif event.type == K_SPACE and shot_count == 1:
resetShot = 0
答案 0 :(得分:8)
在使用调音台/声音对象之前,您需要pygame.init()
。
根据documentation,你应该使用OGG或WAV声音文件。
答案 1 :(得分:1)
我在两周之前制作了俄罗斯方块游戏,我遇到了同样的问题! 我所做的是在播放声音之前插入它并且它有效。
pygame.mixer.init(44100, -16,2,2048)
亲自试一试,看看它是否有效!我希望有帮助
答案 2 :(得分:0)
我正在查看here,发现pygame
仅加载OGG和未压缩的WAV文件。
另一个问题是您忘记初始化pygame.mixer
模块。
pygame.mixer.init()
是初始化pygame.mixer
模块的最简单方法。
有关更多信息,请转到上一个链接。
答案 3 :(得分:0)
import pygame as pg
from pygame import mixer
pg.init()
#...
mixer.music.load('sounds/bgsound.mp3')
mixer.music.play(-1)
答案 4 :(得分:0)
在Linux系统上使用pycharm时,我在同一项目上遇到了相同的错误。
简单的解决方法是在python shell或IDLE中运行sript(大致相同)。
如果您是像我这样的Linux用户(我使用Ubuntu),只需在终端中打开包含脚本的文件夹,然后使用python运行脚本即可,
python3 Space_Invaders.py
它应该可以正常运行。我尝试运行代码而不使用python IDLE初始化混合器,并且在那里也没有遇到错误。