2015-10-24 109 views
0

目前,我正在研究基於文本的RPG。這個想法是實現一個音軌,以及一般遊戲的聲音,最終還有一個gui。我已經想出瞭如何使用pyaudio播放聲音。現在,問題是我不能在音樂播放時運行其他功能。有沒有解決的辦法?我已閱讀多處理的主題;但是,他們似乎沒有太大的幫助。無需多處理代碼,音頻將佔主導地位,Python將不會運行任何其他功能。通過代碼,遊戲將運行遊戲,但不會播放音頻。使用多重處理一次運行多個功能

#Module Imports 
from rooms import user, create 
import items 
import enemies 
import rooms 
from music import AudioFile 
from multiprocessing import Process 
import sys 

def game(): 
    global AudioFile 
    User = user() 
    c = create() 
    a = AudioFile("rpg.wav") 
    while User.is_alive() and User.win == 0: 
     if __name__=='__main__': 
      p1 = Process(target = a.play) 
      p1.start() 
      p2 = Process(target = c) 
      p2.start() 
      p1.join() 
      p2.join() 
game() 

不應該讓a.play()和class c()同時運行嗎?

感謝您的任何反饋和答案!

回答

0

Pleae嘗試下面的代碼,

while User.is_alive() and User.win == 0: 
    if __name__=='__main__': 
     procs = [Process(target = a.play), Process(target = c)] 
     [p.start() for p in procs] 
     [p.join() for p in procs] 
+0

該代碼合法地做同樣的事情。我的遊戲命令玩家鍵入'開始',以便他們可以開始遊戲。如果我退出該提示,音樂會嘗試播放,但最終會給我一個「酸洗」錯誤。我知道音頻代碼的作品,因爲當單獨執行時,它工作正常。但是,與其他代碼結合使用似乎不起作用。 – PyDive