Pygame中的混频器模块具有pygame.mixer.get_busy
它返回一个简单的布尔。
我的问题是,我已经打声不断,像爆炸和枪声,并且需要知道当一个特定的声音播放,以防止重叠的游戏对话。
我认为使当前播放的对话,创造每个声音被触发倒计时计时器的名单,但这需要我补充的声音效果(我的模块处理的声音)更新的游戏主循环。
这似乎乱了,像一个巨大的增长放缓。
是否有一个更清洁的方式做到这一点?
Pygame中的混频器模块具有pygame.mixer.get_busy
它返回一个简单的布尔。
我的问题是,我已经打声不断,像爆炸和枪声,并且需要知道当一个特定的声音播放,以防止重叠的游戏对话。
我认为使当前播放的对话,创造每个声音被触发倒计时计时器的名单,但这需要我补充的声音效果(我的模块处理的声音)更新的游戏主循环。
这似乎乱了,像一个巨大的增长放缓。
是否有一个更清洁的方式做到这一点?
您可以使用该通道对象。
播放特定类型的音频的通道和检查,看看是否播放声音时。
import pygame
def main(filepath):
pygame.mixer.init()
# If you want more channels, change 8 to a desired number. 8 is the default number of channel
pygame.mixer.set_num_channels(8)
# This is the sound channel
voice = pygame.mixer.Channel(5)
sound = pygame.mixer.Sound(filepath)
voice.play(sound)
if voice.get_busy():
#Do Something