如何在Pygame中制作音频徽标?

时间:2019-01-12 07:56:47

标签: python audio pygame

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键为止。尽管循环应该一直工作到播放声音为止。

0 个答案:

没有答案