[英]Pygame mixer in loop
我正在设计一个关于 pygame 和语音识别的游戏,其中将显示不同的图像,用户必须说出他们看到的对象的名称。 如果他们给出正确的答案,程序将播放一个音频文件“干得好”并移至下一张图片。 否则会播放“错误答案再试一次”,促使用户有第二次回答相同问题的机会; 它会发生三次。 我的问题是,在最后一次机会之后,音频文件“错误答案再试一次”将被播放并移动到下一个问题而不是再次跳动。 如何在最后一次循环时跳过播放“错误答案再试一次”?
谢谢。
for i in range(1,11):
if i== 1:
carImg = pygame.image.load(os.path.join(image_path,'tiger.jpg'))
gameDisplay.blit(carImg,(130,0))
pygame.display.update()
pygame.mixer.Sound.play(Tiger)
pygame.mixer.music.stop()
time.sleep(7)
for j in range(1,4):
r = sr.Recognizer()
with sr.Microphone() as source:
print ('Say Something!')
audio = r.listen(source)
try:
text = r.recognize_google(audio)
print(text)
except:
print('Did not get that try Again')
text=''
if text == 'tiger':
print('good job')
pygame.mixer.Sound.play(right)
pygame.mixer.music.stop()
break
else:
print('wrong try again')
pygame.mixer.Sound.play(wrong)
pygame.mixer.music.stop()
time.sleep(3)
time.sleep(4)
elif i== 2:
carImg = pygame.image.load(os.path.join(image_path,'monkey.jpg'))
gameDisplay.blit(carImg,(130,0))
pygame.display.update()
pygame.mixer.Sound.play(Monkey)
pygame.mixer.music.stop()
for a in range(1,4):
r = sr.Recognizer()
with sr.Microphone() as source:
print ('Say Something!')
audio = r.listen(source)
try:
text = r.recognize_google(audio)
print(text)
except:
print('Did not get that try Again')
text=''
if text == 'monkey':
print('good job')
pygame.mixer.Sound.play(right)
pygame.mixer.music.stop()
break
else:
print('wrong ya wad')
pygame.mixer.Sound.play(wrong)
pygame.mixer.music.stop()
time.sleep(3)
time.sleep(4)
您可以创建一个名为“guess_counter”之类的变量来跟踪他们回答错误的次数,并且当该数字小于 3 时(因为您说他们将有 3 次机会)您可以播放错误的声音效果.
移至下一张图片后,您可以重置此计数器变量以跟踪对新图片的猜测。
for i in range(1,11):
if i== 1:
guess_counter = 0
carImg = pygame.image.load(os.path.join(image_path,'tiger.jpg'))
gameDisplay.blit(carImg,(130,0))
pygame.display.update()
pygame.mixer.Sound.play(Tiger)
pygame.mixer.music.stop()
time.sleep(7)
for j in range(1,4):
r = sr.Recognizer()
with sr.Microphone() as source:
print ('Say Something!')
audio = r.listen(source)
try:
text = r.recognize_google(audio)
print(text)
except:
print('Did not get that try Again')
text=''
if text == 'tiger':
print('good job')
pygame.mixer.Sound.play(right)
pygame.mixer.music.stop()
break
else:
if guess_counter < 3:
print('wrong try again')
pygame.mixer.Sound.play(wrong)
pygame.mixer.music.stop()
time.sleep(3)
guess_counter += 1
time.sleep(4)
elif i== 2:
guess_counter = 0
carImg = pygame.image.load(os.path.join(image_path,'monkey.jpg'))
gameDisplay.blit(carImg,(130,0))
pygame.display.update()
pygame.mixer.Sound.play(Monkey)
pygame.mixer.music.stop()
for a in range(1,4):
r = sr.Recognizer()
with sr.Microphone() as source:
print ('Say Something!')
audio = r.listen(source)
try:
text = r.recognize_google(audio)
print(text)
except:
print('Did not get that try Again')
text=''
if text == 'monkey':
print('good job')
pygame.mixer.Sound.play(right)
pygame.mixer.music.stop()
break
else:
if guess_counter < 3:
print('wrong ya wad')
pygame.mixer.Sound.play(wrong)
pygame.mixer.music.stop()
time.sleep(3)
guess_counter += 1
time.sleep(4)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.