2011-05-14 155 views
6

我现在已经开始工作了,但延迟时间还有更好的办法,因为我想要两个不同的脚本来工作我希望按照这个顺序播放这些文件,并让我的图像按顺序排列,图像是长脚本,并且对它们也有时间延迟。在Pygame中,如果甚至可以播放多首歌曲,它又如何呢?

#!/usr/bin/env python 
import pygame 
pygame.mixer.init() 
pygame.mixer.pre_init(44100, -16, 2, 2048) 
pygame.init() 
print "hey I finaly got this working!" 
sounda= pygame.mixer.Sound('D:/Users/John/Music/Music/FUN.OGG') 
soundb= pygame.mixer.Sound('D:/Users/John/Music/Music/Still Alive.OGG') 
soundc= pygame.mixer.Sound('D:/Users/John/Music/Music/turret.OGG') 
soundd= pygame.mixer.Sound('D:/Users/John/Music/Music/portalend.OGG') 
sounda.play() 
pygame.time.delay(11000) 
soundb.play()<P> 
pygame.time.delay(180000) 
soundc.play() 
pygame.time.delay(90000) 
soundd.play() 

回答

7

您是否检查pygame.Mixer模块?默认情况下,您可以同时播放8首歌曲。

如果您使用pygame.mixer.music,那么您将只能在当时播放一首歌曲。

如果您使用pygame.mixer.sound,那么您最多可以播放8首歌曲。

music module是在这里流音乐(它不会立即加载所有的音乐文件)。

sound module是在这里玩游戏中的不同声音(声音完全加载到内存中)。

所以,在你的例子,如果你想在同一时间播放的4首歌曲:

import pygame 
pygame.mixer.init() 
pygame.mixer.pre_init(44100, -16, 2, 2048) 
pygame.init() 
print "hey I finaly got this working!" 
sounds = [] 
sounds.append(pygame.mixer.Sound('D:/Users/John/Music/Music/FUN.OGG')) 
sounds.append(pygame.mixer.Sound('D:/Users/John/Music/Music/Still Alive.OGG')) 
sounds.append(pygame.mixer.Sound('D:/Users/John/Music/Music/turret.OGG')) 
sounds.append(pygame.mixer.Sound('D:/Users/John/Music/Music/portalend.OGG')) 
for sound in sounds: 
    sound.play() 
+0

是的,但它是如何使用渠道我尝试过,但如何分配一个频道的歌曲? – user754010 2011-05-14 22:40:53

+0

@user:编辑我的答案 – 2011-05-15 07:23:48

0

下面的脚本将加载4个声音(sound_0.wav到sound_3.wav)并播放它们。

sounds = [] 
for i in range(4): 
    sound = pygame.mixer.Sound('sound_%d.wav'%i) 
    sound.play() 
    sounds.append(sound) 
相关问题