Я пытаюсь создать текстовую игру и добавить к ней немного музыки, и, может быть, тоже звучит, однако, «Большим и величайшим» ответом была Pygame. После тестирования я обнаружил, что когда вы используете ЛЮБУЮ функцию Pygame, она останавливает текущую терминальную сессию от вывода дополнительной информации, это останавливает продолжение игры.
Сначала я попробовал обычный ...
from pygame import *
def some_function():
mixer.load("music.mp3")
mixer.music.play(0)
clock = time.Clock()
clock.tick(10)
while mixer.music.get_busy():
clock.tick(10)
Rest_of_function
И, конечно, это не работает, потому что это цикл, и он делает это по порядку, поэтому я попробовал в следующий раз ...
from file_with_music import * #added threading to this file
def main():
file_with_music.start()
Rest_of_Function
Это, однако, не сработало, поскольку раздражающий всплывающий вывод терминала "Welcome to pygame" снова заблокирован ...
ТАК, следующим шагом было создание нового файла и ...
from Main import *
from Intro_Sounds import *
if __name__ == '__main__':
Intro_Thread.start() #Intro did not start because pygame popup was somehow called
Music_Thread.start()
Даже после помещения их в потоки все равно не получалось ...
В качестве примечания, в Main есть встроенная функция, предназначенная для выполнения
Music_Thread.join()
Music_Thread.stop()
После того, как определенный вход встречен.
Ожидаемый результат - воспроизведение музыки в фоновом режиме, в то время как терминал продолжает распечатывать ввод и принимать ввод до тех пор, пока не будет введен ввод, который уничтожит музыкальную нить. Конечно, это не сработало, и я в растерянности ...
Как воспроизводить музыку, не замораживая терминал.