while循环中的一些问题。
我正在创建一个音频游戏。用户打开游戏时,我需要创建一个游戏徽标。这对于游戏保护者也可能是必需的。 对我来说,必须复制声音,并且该程序在播放结束之前无法继续工作。另外,如果用户按下Return键,则可以跳过此操作。 我决定通过while循环进行此操作。但这不能正常工作...
from attr import attrs, attrib, Factory
import pygame
import time
pygame.mixer.init(frequency=44100, buffer=512)
@attrs
class sound():
handle=attrib(default=Factory(int))
def load(self,filename=""):
self.handle = pygame.mixer.Sound(filename)
def play(self):
self.handle.play()
def stop(self):
self.handle.stop()
def get_volume(self):
return self.handle.get_volume()
def set_volume(self, new_volume):
self.handle.set_volume(new_volume)
def fade(self, fadeSpeed):
self.handle.fadeout(fadeSpeed)
def isPlaying(self):
return self.handle.get_busy()
import pygame
from AGK.audio import sound
from AGK.mainframe import keyboard
import time
dlgAudio = sound.sound()
def dlgPlay(dlgSound, dlgFade=False, fadeSpeed=1000):
dlgAudio.load(dlgSound)
dlgAudio.play()
while dlgAudio.isPlaying:
if keyboard.pressed() == pygame.K_RETURN:
if dlgFade == True:
dlgAudio.fade(fadeSpeed)
time.sleep(2)
break
如果在播放徽标时按回车键,它将起作用。声音逐渐消失并从循环中退出。 但是,如果声音播放到最后,则播放完成后,循环将继续进行,直到您按Return键为止。尽管循环应该一直工作到播放声音为止。