Я пытаюсь создать текстовую игру и добавить к ней немного музыки и, возможно, звуков, однако ответ «Большой и величайший» был 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
Однако это не сработало, поскольку раздражающее всплывающее окно «Добро пожаловать в 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()
После того, как определенный ввод будет выполнен.
Ожидаемый результат - это воспроизведение музыки в фоновом режиме, в то время как терминал продолжает распечатывать ввод и принимать ввод до тех пор, пока не будет введен ввод, который уничтожит поток Music. Конечно, не вышло, и я в недоумении ...
Как можно проигрывать музыку без зависания терминала.