Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Воспроизведение миди на Pygame

Автор вопроса: Bob LozanoОтветов: 3

Хорошо, вот что я получил:

import pygame
import sys

from pygame.locals import *

bif="bg.jpg"
mif="pkmn.png"
sif="bubble.png"
song_1="testaudio.mid"

pygame.init()

FPS = 30  # FPS
FPSCLOCK = pygame.time.Clock()  # FPS

screen = pygame.display.set_mode ((600,375),0,32)

intro=pygame.mixer.Sound(song_1)
intro.play()

background = pygame.image.load(bif).convert()

pygame.mouse.set_visible(0)

char = pygame.image.load(mif).convert_alpha()
x = screen.get_width()/2 - char.get_width()/2
y = screen.get_height() - char.get_height()

bubble = pygame.image.load(sif).convert_alpha()
shoot_y = 0

move_speed = 15  # FPS

while True:

    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

    pressed = pygame.key.get_pressed()
    if pressed[K_LEFT]:
        x -= move_speed
    if pressed[K_RIGHT]:
        x += move_speed
    if pressed[K_UP]:
        y -= move_speed
    if pressed[K_DOWN]:
        y += move_speed

    if event.type==KEYDOWN:
        if event.key==K_SPACE:
            shoot_y = y
            shoot_x = x

    screen.blit(background,(0,0))

    if shoot_y > 0:
        screen.blit(bubble,(shoot_x, shoot_y))
        shoot_y -= 10


    screen.blit(char,(x,y))

    pygame.display.update()
    FPSCLOCK.tick(FPS)  # FPS

Итак, у меня есть несколько миди-файлов, которые я создал, однако я продолжаю получать "Невозможно открыть файл" testaudio.mid ", я немного пробовал, но я действительно запутался, я новичок в pygame, но не могу понять это, Я искал везде, но все еще не могу заставить его работать, даже на этом же сайте, но все еще не мог понять.

Я действительно надеюсь, что кто-то может помочь мне, изменив мой код или показав мне путь к более ясному примеру, потому что я не смог понять тот, который нашел.

Спасибо (:

  • Ваши аудиофайлы находятся в том же каталоге, что и файл python? Haz 04.06.2013

pygamemidi

Ответы

Ответ 1 · рейтинг 10 · Adrian G

Следующий код будет воспроизводить файл music.mid, расположенный в текущем каталоге.

import pygame
pygame.init()

pygame.mixer.music.load("music.mid")
pygame.mixer.music.play()

Ответ 2 · рейтинг 6 · RufusVS

Если у вас есть простая программа, которая завершает работу после команды воспроизведения, воспроизведение музыки останавливается.

вы должны добавить следующие две строки:

while pygame.mixer.music.get_busy():
    pygame.time.wait(1000)

чтобы предотвратить выход из программы до того, как музыка закончила играть.

Ответ 3 · staplegun

Следуя приведенному выше ответу, вместо того, чтобы ждать 1000, вы можете найти длину миди-файла, используя

length = pygame.time.get_ticks()

а затем установите время ожидания на длину

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы