Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/05/2015, à 23:07

Inzaguiz

[PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

Ben tout est dit. Je veux jouer de la musique en guise de bande son sur mon jeu (Tkinter), mais je n'ai pas le module pygame....

Comment faire hmm

Hors ligne

#2 Le 25/05/2015, à 07:07

pingouinux

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

Bonjour,

sudo apt-get install python-pygame

Hors ligne

#3 Le 25/05/2015, à 11:06

tiramiseb

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

Salut,

pingouinux: je pense que la recherche d'Inzaguiz porte plutôt sur « comment faire sans pygame » plutôt que « comment installer pygame ».
Devoir dépendre de pygame juste pour la musique, c'est un peu dommage. Soit on utilise pygame pour tout (donc pas tkinter), soit on n'utilise pas pygame du tout...

-----

Inzaguiz: bien sûr il n'y a pas que pygame pour lire de la musique. Maintenant, ne sachant pas comment est structuré le code de ton jeu, on n'est pas trop capables de t'aider. Il y a des modules intégrés, il y a aussi des modules complémentaires, à toi de choisir selon ce que tu as comme fichier audio et comment est fait ton code.
https://wiki.python.org/moin/Audio

Si c'est juste pour avoir une bande son en continu, une approche très simple serait de lancer un second thread (cf module threading) et y lire un fichier audio, avec une bibliothèque adaptée au format du fichier en question.

Dernière modification par tiramiseb (Le 25/05/2015, à 11:06)

Hors ligne

#4 Le 25/05/2015, à 11:39

pingouinux

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

J'avais compris que Inzaguiz ne trouvait pas le nom du module.

Hors ligne

#5 Le 25/05/2015, à 12:14

Inzaguiz

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

tiramiseb, c'est vrai que j'aimerai faire sans pygame. Mais s'il n'y avait pas de solution autre, je l'aurais téléchargé c'est pas un soucis..

Je suis déjà allé sur ce site et j'ai rien compris hmm L'anglais n'est pas le problème c'est juste que je sais pas quoi prendre, ni les balises associées...

Si tu veux mon code le voici : (il est toujours en chantier wink ) :

from tkinter import *
from math import *
from time import *
from random import *

import time
#import pygame

class Yakusa():
    def __init__(self):
        self.positionx = 75
        self.positiony = 75
        self.score = 0
        self.Vx = 6.25
        self.Vy = 6.25
        self.taille = 12.5

class Guard():
    
    def __init__(self,position):
        self.v = 1
        self.range = 150
        self.x = position[0]
        self.y = position[1]
        self.t = 12.5
        self.vx=1
        self.vy=0
        
    def __repr__(self):
        return str(self.x) + str(self.y)
        
    def trace(self):
        x=self.x
        y=self.y
        r=12.5
        self.n=tableau.create_oval(x-r,y-r,x+r,y+r,width = 2,fill="blue")
        self.m=tableau.create_rectangle(x-24.75,y-24.75,x+24.75,y+24.75)
        
        
    def patrouille(self):


   ############1 2 3 4 5 6 7 8 9 
##        CG = [[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
##              [1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1],
##              [1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],
##              [1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1],
##              [1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1],
##              [1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1],
##              [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
##              [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
##              [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
##              [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1],
##              [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
##              [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
##              [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
##              [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
##              [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]
        
        CG =[[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
            [1,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1],
            [1,1,1,0,1,0,0,1,0,0,1,1,1,1,0,0,1,1,1,1,1],
            [1,1,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1],
            [1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1],
            [1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1],
            [1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,1],
            [1,0,1,1,0,0,1,0,1,1,1,1,1,0,1,0,0,1,1,1,1],
            [1,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1],
            [1,0,1,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1],
            [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
            [1,0,1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,0,1,1,1],
            [1,0,0,0,0,0,1,0,0,1,1,1,1,0,0,0,1,0,0,0,1],
            [1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1],
            [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]


        ecrase=50
        future=0.5
       # print(self.x/ecrase+future*self.vx,'    ',self.y/ecrase+future*self.vy)
        futur=CG[min(14,int(self.y/ecrase+future*self.vy))][min(20,int(self.x/ecrase+future*self.vx))]
        
        while futur == 1 :

            direction=randint(0,3)

            if direction==0:
                self.vx=1
                self.vy=0
            elif direction==1:
                self.vx=-1
                self.vy=0
            elif direction==2:
                self.vx=0
                self.vy=1
            elif direction==3:
                self.vx=0
                self.vy=-1
            futur=CG[min(14,int(self.y/ecrase+future*self.vy))][min(20,int(self.x/ecrase+future*self.vx))]
                  
        self.x+=self.vx*self.v
        self.y+=self.vy*self.v


#BandeSon = pygame.mixer.Sound("BandeSon.wav")
#BandeSon.play()

def sprit(X,Y,R):
    global p
    p=tableau.create_oval(X-R,Y-R,X+R,Y+R,width = 2,fill='red')
    
fenetre = Tk(className = 'Splinter stealth')

tableau=Canvas(fenetre, width=1050, height=750)

tableau.create_rectangle(50,50,1000,700,fill='#7F7F7F')

tableau.create_rectangle(50,150,150,200,fill='black')#1 coli
tableau.create_rectangle(200,50,250,200,fill='black')#2 coli
tableau.create_rectangle(50,250,250,300,fill='black')#3 coli
tableau.create_rectangle(350,500,300,300,fill='black')#4 coli
tableau.create_rectangle(100,350,200,400,fill='black')#5 coli
tableau.create_rectangle(150,400,200,450,fill='black')#6 coli
tableau.create_rectangle(100,450,200,500,fill='black')#7 coli
tableau.create_rectangle(100,550,350,600,fill='black')#8 coli
tableau.create_rectangle(300,600,350,650,fill='black')#9 coli
tableau.create_rectangle(300,150,400,200,fill='black')#10 coli
tableau.create_rectangle(350,100,400,150,fill='black')#11 coli
tableau.create_rectangle(800,100,1000,150,fill='black')#12 coli
tableau.create_rectangle(850,200,900,300,fill='black')#13 coli
tableau.create_rectangle(450,600,600,650,fill='black')#14 coli
tableau.create_rectangle(600,550,650,700,fill='black')#15 coli
tableau.create_rectangle(500,250,550,500,fill='red')#16 coli
tableau.create_rectangle(400,350,650,400,fill='red')#17 coli
tableau.create_rectangle(650,200,750,250,fill='black')#18
tableau.create_rectangle(900,200,1000,250,fill='black')#19 coli
tableau.create_rectangle(950,250,1000,400,fill='black')#20 coli
tableau.create_rectangle(850,350,950,400,fill='black')#21 coli
tableau.create_rectangle(900,550,1000,600,fill='black')#22
tableau.create_rectangle(800,550,850,700,fill='black')#23
tableau.create_rectangle(700,250,750,500,fill='black')#24
tableau.create_rectangle(650,50,700,100,fill='black')#25
tableau.create_rectangle(500,100,700,150,fill='black')#26
tableau.create_rectangle(0,0,1050,50,fill='blue')#top coli
tableau.create_rectangle(1000,00,1050,750,fill='blue')#right coli
tableau.create_rectangle(0,700,1050,750,fill='blue')#bottom coli
tableau.create_rectangle(0,0,50,700,fill='blue')#left coli


tableau.create_rectangle(50,50,150,150,fill="#00B800")#safe zone

global k
global d
k=tableau.create_oval(975-10,75-10,975+10,75+10,width = 1,fill='pink')#Key

d=tableau.create_rectangle(850,550,900,600,fill='brown')#Door
    
tableau.pack()
tableau.update()

Player = Yakusa()

guarde=[ Guard([575,525]),
         Guard([775,325]),
         Guard([975,475])]

#for i in range(100):
#   guarde.append(Guard([150,150]))

sprit(Player.positionx,Player.positiony,Player.taille)

TempsImparti= 360

Start = int(time.time())

photo = PhotoImage(file='Diamant.gif') 
item = tableau.create_image(975, 675, image = photo)

ScoreDec = 0
Score = 'SCORE :' + str(ScoreDec)

import tkinter
widget1 = tkinter.Label(None)
widget1.config(text=Score,foreground="red")
widget1.pack()


#---------------------------------------------DEPLACEMENT ET COLISIONS--------------------------------------------

CP =[[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],#1
     [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],#1
     [1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1],#2
     [1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1],#2
     [1,1,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1],#3
     [1,1,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1],#3
     [1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1],#4
     [1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1],#4
     [1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1],#5
     [1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1],#5
     [1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,1,1,1],#6
     [1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,1,1,1],#6
     [1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1],#7
     [1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1],#7
     [1,1,0,0,1,1,1,1,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1],#8
     [1,1,0,0,1,1,1,1,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1],#8
     [1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1],#9
     [1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1],#9
     [1,1,0,0,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1],#10
     [1,1,0,0,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1],#10
     [1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1],#11
     [1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1],#11
     [1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1],#12
     [1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1],#12
     [1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1],#13
     [1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1],#13
     [1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1],#14
     [1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1],#14
     [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],#15
     [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]#15


def fleche_haut(event):
    
    ecrase=25
    Avenire=0.5
    indice1 = int(Player.positiony/ecrase-Avenire)
    indice2 = int(Player.positionx/ecrase)

    if indice1 < 0:
        indice1 = 0
        
    if indice2 < 0:
        indice2 = 0
        
    Avenir=CP[min(28,indice1)][min(40,indice2)]
        
    while Avenir == 1 :
        return

    tableau.delete(p)
    Player.positiony -= 6.25
    sprit(Player.positionx,Player.positiony,Player.taille)

    print (Player.positionx,Player.positiony)
        
    
def fleche_gauche(event):
    
    ecrase=25
    Avenire=0.5
    indice1 = int(Player.positiony/ecrase)
    indice2 = int(Player.positionx/ecrase-Avenire)

    if indice1 < 0:
        indice1 = 0
        
    if indice2 < 0:
        indice2 = 0
        
    Avenir=CP[min(28,indice1)][min(40,indice2)]
            
    while Avenir == 1 :
        return

    tableau.delete(p)
    Player.positionx -= 6.25
    sprit(Player.positionx,Player.positiony,Player.taille)

    print (Player.positionx,Player.positiony)

def fleche_bas(event):
    
    ecrase=25
    Avenire=0.5
    indice1 = int(Player.positiony/ecrase+Avenire)
    indice2 = int(Player.positionx/ecrase)

    if indice1 < 0:
        indice1 = 0
        
    if indice2 < 0:
        indice2 = 0
        
    Avenir=CP[min(28,indice1)][min(40,indice2)]
            
    while Avenir == 1 :
        return

    tableau.delete(p)
    Player.positiony += 6.25
    sprit(Player.positionx,Player.positiony,Player.taille)
    
    print (Player.positionx,Player.positiony)

def fleche_droite(event):
    
    ecrase=25
    Avenire=0.5
    indice1 = int(Player.positiony/ecrase)
    indice2 = int(Player.positionx/ecrase+Avenire)

    if indice1 < 0:
        indice1 = 0
        
    if indice2 < 0:
        indice2 = 0        
    Avenir=CP[min(28,indice1)][min(40,indice2)]
            
    while Avenir == 1 :
        return

    tableau.delete(p)
    Player.positionx += 6.25
    sprit(Player.positionx,Player.positiony,Player.taille)
    
    print (Player.positionx,Player.positiony)


fenetre.bind("<Up>", fleche_haut)
fenetre.bind("<Down>", fleche_bas)
fenetre.bind("<Left>", fleche_gauche)
fenetre.bind("<Right>", fleche_droite)

widget2 = tkinter.Label(None)
widget2.pack()

Game = 1
DiamantCheck = 1
Advanced = 0

DoorCheck = 'Door is Locked'
widget4 = tkinter.Label(None)
widget4.pack()
widget4.config(text=DoorCheck,foreground="red")

while Game == 1:

    Now = int(time.time())
    TempsEcoule = int(Now - Start)
    Timer = 'Temps : ' + str(TempsEcoule)

    widget2.config(text=Timer,foreground="red")

    #Test = str(int(Player.positionx)+12) + str(int(Player.positiony)+12)

    Playerporteex = Player.positionx + 12.5
    Playerporteey = Player.positiony + 12.5
    
    
    X1 = str(guarde[0]).split(str(guarde[0].y)) #J'isole le x du garde 1
    Garde1x = int(X1[0])
    Portee1D = Garde1x + 25
    Portee1G = Garde1x - 25

    Y1 = str(guarde[0]).split(str(guarde[0].x)) #J'isole le y du garde 2
    Garde1y = int(Y1[1])
    Portee1H = Garde1y + 25
    Portee1B = Garde1y - 25

    X2 = str(guarde[1]).split(str(guarde[1].y))
    Garde2x = int(X2[0])

    Y2 = str(guarde[1]).split(str(guarde[1].x))
    Garde2y = int(Y2[1])

    X3 = str(guarde[2]).split(str(guarde[2].y))
    Garde3x = int(X3[0])

    Y3 = str(guarde[2]).split(str(guarde[2].x))
    Garde3y = int(Y3[1])
    
    if Advanced == 1 :
        X4 = str(guarde[3]).split(str(guarde[3].y))
        Garde4x = int(X4[0])

        Y4 = str(guarde[3]).split(str(guarde[3].x))
        Garde4y = int(Y4[1])
        
        X5 = str(guarde[4]).split(str(guarde[4].y))
        Garde5x = int(X5[0])

        Y5 = str(guarde[4]).split(str(guarde[4].x))
        Garde5y = int(Y5[1])

        X6 = str(guarde[5]).split(str(guarde[5].y))
        Garde6x = int(X6[0])

        Y6 = str(guarde[5]).split(str(guarde[5].x))
        Garde6y = int(Y6[1])

        X7 = str(guarde[6]).split(str(guarde[6].y))
        Garde7x = int(X7[0])

        Y7 = str(guarde[6]).split(str(guarde[6].x))
        Garde7y = int(Y7[1])

    if Playerporteey> Portee1G or Playerporteex > Portee1G :
        print("check !")
        
    if TempsEcoule >= TempsImparti :
        Game = 0
        
    if Player.positiony >= 650 and Player.positionx >= 950 and DiamantCheck == 1:
        tableau.delete(item)
        Total = ScoreDec + 10000
        Score = str(Total)
        widget1.config(text=Score,foreground="red")

        OMG = 'OMG you took the Diamant !'
        widget5 = tkinter.Label(None)
        widget5.config(text=OMG,foreground="red")
        widget5.pack()
        DiamantCheck = 0
        Advanced = 1

        guarde +=[Guard([175,225]),
                  Guard([375,325]),
                  Guard([225,625]),
                  Guard([625,75])]
        
    if  Player.positionx >= 952.75 and Player.positiony <= 92.55 :
        
        tableau.delete(k)
        tableau.delete(d)

        CP [22][34] = 0
        CP [22][35] = 0
        CP [23][34] = 0
        CP [23][35] = 0

        DoorCheck = 'Door is Opened'
        widget4.config(text=DoorCheck,foreground="red")

    if Player.positionx <= 162.5 and Player.positiony <= 162.5 and DiamantCheck == 0 :
        
        tableau.create_rectangle(0,0,1100,900,fill='Yellow')
        
        GAMEOVER = 'YOU WON !'
        widget3 = tkinter.Label(None)
        widget3.config(text=GAMEOVER,foreground="red")
        widget3.pack()
        
    tableau.delete(p)
    sprit(Player.positionx,Player.positiony,Player.taille)
    sleep(1/30)
    for i in guarde:
        i.trace()
        i.patrouille()
    tableau.pack()
    tableau.update()
    for i in guarde:
        tableau.delete(i.n)
        tableau.delete(i.m)
    print(guarde[2])
tableau.create_rectangle(0,0,1100,900,fill='white')
GAMEOVER = 'YOU LOSE'
widget3 = tkinter.Label(None)
widget3.config(text=GAMEOVER,foreground="red")
widget3.pack()
mainloop()

Voilà en gros...

Hors ligne

#6 Le 25/05/2015, à 12:17

Inzaguiz

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

Prend celui là plutôt... L'autre crash a cause des garde... J'ai pas tout fixé..

from tkinter import *
from math import *
from time import *
from random import *

import time
#import pygame

class Yakusa():
    def __init__(self):
        self.positionx = 75
        self.positiony = 75
        self.score = 0
        self.Vx = 6.25
        self.Vy = 6.25
        self.taille = 12.5

class Guard():
    
    def __init__(self,position):
        self.v = 1
        self.range = 150
        self.x = position[0]
        self.y = position[1]
        self.t = 12.5
        self.vx=1
        self.vy=0
        
    def __repr__(self):
        return str(self.x) + str(self.y)
        
    def trace(self):
        x=self.x
        y=self.y
        r=12.5
        self.n=tableau.create_oval(x-r,y-r,x+r,y+r,width = 2,fill="blue")
        self.m=tableau.create_rectangle(x-24.75,y-24.75,x+24.75,y+24.75)
        
        
    def patrouille(self):


   ############1 2 3 4 5 6 7 8 9 
##        CG = [[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
##              [1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1],
##              [1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],
##              [1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1],
##              [1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1],
##              [1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1],
##              [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
##              [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
##              [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
##              [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1],
##              [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
##              [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
##              [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
##              [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
##              [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]
        
        CG =[[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
            [1,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1],
            [1,1,1,0,1,0,0,1,0,0,1,1,1,1,0,0,1,1,1,1,1],
            [1,1,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1],
            [1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1],
            [1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1],
            [1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,1],
            [1,0,1,1,0,0,1,0,1,1,1,1,1,0,1,0,0,1,1,1,1],
            [1,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1],
            [1,0,1,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1],
            [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
            [1,0,1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,0,1,1,1],
            [1,0,0,0,0,0,1,0,0,1,1,1,1,0,0,0,1,0,0,0,1],
            [1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1],
            [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]


        ecrase=50
        future=0.5
       # print(self.x/ecrase+future*self.vx,'    ',self.y/ecrase+future*self.vy)
        futur=CG[min(14,int(self.y/ecrase+future*self.vy))][min(20,int(self.x/ecrase+future*self.vx))]
        
        while futur == 1 :

            direction=randint(0,3)

            if direction==0:
                self.vx=1
                self.vy=0
            elif direction==1:
                self.vx=-1
                self.vy=0
            elif direction==2:
                self.vx=0
                self.vy=1
            elif direction==3:
                self.vx=0
                self.vy=-1
            futur=CG[min(14,int(self.y/ecrase+future*self.vy))][min(20,int(self.x/ecrase+future*self.vx))]
                  
        self.x+=self.vx*self.v
        self.y+=self.vy*self.v


#BandeSon = pygame.mixer.Sound("BandeSon.wav")
#BandeSon.play()

def sprit(X,Y,R):
    global p
    p=tableau.create_oval(X-R,Y-R,X+R,Y+R,width = 2,fill='red')
    
fenetre = Tk(className = 'Splinter stealth')

tableau=Canvas(fenetre, width=1050, height=750)

tableau.create_rectangle(50,50,1000,700,fill='#7F7F7F')

tableau.create_rectangle(50,150,150,200,fill='black')#1 coli
tableau.create_rectangle(200,50,250,200,fill='black')#2 coli
tableau.create_rectangle(50,250,250,300,fill='black')#3 coli
tableau.create_rectangle(350,500,300,300,fill='black')#4 coli
tableau.create_rectangle(100,350,200,400,fill='black')#5 coli
tableau.create_rectangle(150,400,200,450,fill='black')#6 coli
tableau.create_rectangle(100,450,200,500,fill='black')#7 coli
tableau.create_rectangle(100,550,350,600,fill='black')#8 coli
tableau.create_rectangle(300,600,350,650,fill='black')#9 coli
tableau.create_rectangle(300,150,400,200,fill='black')#10 coli
tableau.create_rectangle(350,100,400,150,fill='black')#11 coli
tableau.create_rectangle(800,100,1000,150,fill='black')#12 coli
tableau.create_rectangle(850,200,900,300,fill='black')#13 coli
tableau.create_rectangle(450,600,600,650,fill='black')#14 coli
tableau.create_rectangle(600,550,650,700,fill='black')#15 coli
tableau.create_rectangle(500,250,550,500,fill='red')#16 coli
tableau.create_rectangle(400,350,650,400,fill='red')#17 coli
tableau.create_rectangle(650,200,750,250,fill='black')#18
tableau.create_rectangle(900,200,1000,250,fill='black')#19 coli
tableau.create_rectangle(950,250,1000,400,fill='black')#20 coli
tableau.create_rectangle(850,350,950,400,fill='black')#21 coli
tableau.create_rectangle(900,550,1000,600,fill='black')#22
tableau.create_rectangle(800,550,850,700,fill='black')#23
tableau.create_rectangle(700,250,750,500,fill='black')#24
tableau.create_rectangle(650,50,700,100,fill='black')#25
tableau.create_rectangle(500,100,700,150,fill='black')#26
tableau.create_rectangle(0,0,1050,50,fill='blue')#top coli
tableau.create_rectangle(1000,00,1050,750,fill='blue')#right coli
tableau.create_rectangle(0,700,1050,750,fill='blue')#bottom coli
tableau.create_rectangle(0,0,50,700,fill='blue')#left coli


tableau.create_rectangle(50,50,150,150,fill="#00B800")#safe zone

global k
global d
k=tableau.create_oval(975-10,75-10,975+10,75+10,width = 1,fill='pink')#Key

d=tableau.create_rectangle(850,550,900,600,fill='brown')#Door
    
tableau.pack()
tableau.update()

Player = Yakusa()

guarde=[ Guard([575,525]),
         Guard([775,325]),
         Guard([975,475])]

#for i in range(100):
#   guarde.append(Guard([150,150]))

sprit(Player.positionx,Player.positiony,Player.taille)

TempsImparti= 360

Start = int(time.time())

photo = PhotoImage(file='Diamant.gif') 
item = tableau.create_image(975, 675, image = photo)

ScoreDec = 0
Score = 'SCORE :' + str(ScoreDec)

import tkinter
widget1 = tkinter.Label(None)
widget1.config(text=Score,foreground="red")
widget1.pack()


#---------------------------------------------DEPLACEMENT ET COLISIONS--------------------------------------------

CP =[[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],#1
     [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],#1
     [1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1],#2
     [1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1],#2
     [1,1,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1],#3
     [1,1,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1],#3
     [1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1],#4
     [1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1],#4
     [1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1],#5
     [1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1],#5
     [1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,1,1,1],#6
     [1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,1,1,1],#6
     [1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1],#7
     [1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1],#7
     [1,1,0,0,1,1,1,1,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1],#8
     [1,1,0,0,1,1,1,1,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1],#8
     [1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1],#9
     [1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1],#9
     [1,1,0,0,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1],#10
     [1,1,0,0,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1],#10
     [1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1],#11
     [1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1],#11
     [1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1],#12
     [1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1],#12
     [1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1],#13
     [1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1],#13
     [1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1],#14
     [1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1],#14
     [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],#15
     [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]#15


def fleche_haut(event):
    
    ecrase=25
    Avenire=0.5
    indice1 = int(Player.positiony/ecrase-Avenire)
    indice2 = int(Player.positionx/ecrase)

    if indice1 < 0:
        indice1 = 0
        
    if indice2 < 0:
        indice2 = 0
        
    Avenir=CP[min(28,indice1)][min(40,indice2)]
        
    while Avenir == 1 :
        return

    tableau.delete(p)
    Player.positiony -= 6.25
    sprit(Player.positionx,Player.positiony,Player.taille)

    print (Player.positionx,Player.positiony)
        
    
def fleche_gauche(event):
    
    ecrase=25
    Avenire=0.5
    indice1 = int(Player.positiony/ecrase)
    indice2 = int(Player.positionx/ecrase-Avenire)

    if indice1 < 0:
        indice1 = 0
        
    if indice2 < 0:
        indice2 = 0
        
    Avenir=CP[min(28,indice1)][min(40,indice2)]
            
    while Avenir == 1 :
        return

    tableau.delete(p)
    Player.positionx -= 6.25
    sprit(Player.positionx,Player.positiony,Player.taille)

    print (Player.positionx,Player.positiony)

def fleche_bas(event):
    
    ecrase=25
    Avenire=0.5
    indice1 = int(Player.positiony/ecrase+Avenire)
    indice2 = int(Player.positionx/ecrase)

    if indice1 < 0:
        indice1 = 0
        
    if indice2 < 0:
        indice2 = 0
        
    Avenir=CP[min(28,indice1)][min(40,indice2)]
            
    while Avenir == 1 :
        return

    tableau.delete(p)
    Player.positiony += 6.25
    sprit(Player.positionx,Player.positiony,Player.taille)
    
    print (Player.positionx,Player.positiony)

def fleche_droite(event):
    
    ecrase=25
    Avenire=0.5
    indice1 = int(Player.positiony/ecrase)
    indice2 = int(Player.positionx/ecrase+Avenire)

    if indice1 < 0:
        indice1 = 0
        
    if indice2 < 0:
        indice2 = 0        
    Avenir=CP[min(28,indice1)][min(40,indice2)]
            
    while Avenir == 1 :
        return

    tableau.delete(p)
    Player.positionx += 6.25
    sprit(Player.positionx,Player.positiony,Player.taille)
    
    print (Player.positionx,Player.positiony)


fenetre.bind("<Up>", fleche_haut)
fenetre.bind("<Down>", fleche_bas)
fenetre.bind("<Left>", fleche_gauche)
fenetre.bind("<Right>", fleche_droite)

widget2 = tkinter.Label(None)
widget2.pack()

Game = 1
DiamantCheck = 1
Advanced = 0

DoorCheck = 'Door is Locked'
widget4 = tkinter.Label(None)
widget4.pack()
widget4.config(text=DoorCheck,foreground="red")

while Game == 1:

    Now = int(time.time())
    TempsEcoule = int(Now - Start)
    Timer = 'Temps : ' + str(TempsEcoule)

    widget2.config(text=Timer,foreground="red")

    #Test = str(int(Player.positionx)+12) + str(int(Player.positiony)+12)

    Playerporteex = Player.positionx + 12.5
    Playerporteey = Player.positiony + 12.5
    
        
    if TempsEcoule >= TempsImparti :
        Game = 0
        
    if Player.positiony >= 650 and Player.positionx >= 950 and DiamantCheck == 1:
        tableau.delete(item)
        Total = ScoreDec + 10000
        Score = str(Total)
        widget1.config(text=Score,foreground="red")

        OMG = 'OMG you took the Diamant !'
        widget5 = tkinter.Label(None)
        widget5.config(text=OMG,foreground="red")
        widget5.pack()
        DiamantCheck = 0
        Advanced = 1

        guarde +=[Guard([175,225]),
                  Guard([375,325]),
                  Guard([225,625]),
                  Guard([625,75])]
        
    if  Player.positionx >= 952.75 and Player.positiony <= 92.55 :
        
        tableau.delete(k)
        tableau.delete(d)

        CP [22][34] = 0
        CP [22][35] = 0
        CP [23][34] = 0
        CP [23][35] = 0

        DoorCheck = 'Door is Opened'
        widget4.config(text=DoorCheck,foreground="red")

    if Player.positionx <= 162.5 and Player.positiony <= 162.5 and DiamantCheck == 0 :
        
        tableau.create_rectangle(0,0,1100,900,fill='Yellow')
        
        GAMEOVER = 'YOU WON !'
        widget3 = tkinter.Label(None)
        widget3.config(text=GAMEOVER,foreground="red")
        widget3.pack()
        
    tableau.delete(p)
    sprit(Player.positionx,Player.positiony,Player.taille)
    sleep(1/30)
    for i in guarde:
        i.trace()
        i.patrouille()
    tableau.pack()
    tableau.update()
    for i in guarde:
        tableau.delete(i.n)
        tableau.delete(i.m)
    print(guarde[2])
tableau.create_rectangle(0,0,1100,900,fill='white')
GAMEOVER = 'YOU LOSE'
widget3 = tkinter.Label(None)
widget3.config(text=GAMEOVER,foreground="red")
widget3.pack()
mainloop()

Hors ligne

#7 Le 25/05/2015, à 12:23

tiramiseb

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

Tu n'as donné aucune précision sur comment doit se présenter la "bande son" (une musique en continu ? quelque chose qui change selon des éléments du jeu ?) et tu n'as pas dit quel est le format du fichier.

Hors ligne

#8 Le 25/05/2015, à 12:34

Inzaguiz

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

Juste une musique en continu lancée au début pour le moment. après je bidouillerai moi même si je veux faire des bruitages..

Hors ligne

#9 Le 25/05/2015, à 12:35

tiramiseb

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

et tu n'as pas dit quel est le format du fichier.
(bis)

Hors ligne

#10 Le 25/05/2015, à 12:38

tiramiseb

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

(cela dit, après avoir regardé, pour ma part je me tournerais vers http://people.csail.mit.edu/hubert/pyaudio/, lancé dans un nouveau thread avec le module threading)

Hors ligne

#11 Le 25/05/2015, à 12:40

Inzaguiz

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

C'est du wav. Mais après je peux le convertir aussi.. Et du coup comment tu écrirais ça ?

Hors ligne

#12 Le 25/05/2015, à 12:45

Inzaguiz

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

Je crois que ça v aller.. Je demanderai si j'ai besoin.

Hors ligne

#13 Le 25/05/2015, à 12:50

tiramiseb

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

Ok, je pourrai donner un avis (en tant que développeur en Python amateur) mais je n'ai jamais fait lire de la musique, alors je ne saurais pas te guider précisément smile

Hors ligne

#14 Le 25/05/2015, à 12:58

Inzaguiz

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

Bon ben l'exemple pour le wav ne marche pas....

import pyaudio
import wave
import sys

CHUNK = 1024

if len(sys.argv) < 2:
    print("Plays a wave file.\n\nUsage: %s filename.wav" % sys.argv[0])
    sys.exit(-1)

wf = wave.open(sys.argv[1], 'rb')

p = pyaudio.PyAudio()

stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
                channels=wf.getnchannels(),
                rate=wf.getframerate(),
                output=True)

data = wf.readframes(CHUNK)

while data != '':
    stream.write(data)
    data = wf.readframes(CHUNK)

stream.stop_stream()
stream.close()

p.terminate()

Hors ligne

#15 Le 25/05/2015, à 13:00

Inzaguiz

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

Après avoir définit le nom du fichier il me dit :

Traceback (most recent call last):
  File "C:\Users\meyrignac\Documents\Documents Scolaires\Audran\ISN\projet\Yakusa v0.4.py", line 15, in <module>
    sys.exit(-1)
SystemExit: -1 

Hors ligne

#16 Le 25/05/2015, à 13:19

Inzaguiz

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

J'ai l"impression que je vais pas le faire sous pyaudio il y a beaucoup d'erreurs et pour expliquer ça devant le jury d'ISN... bref merci quand même...

Dernière modification par Inzaguiz (Le 25/05/2015, à 13:20)

Hors ligne

#17 Le 25/05/2015, à 14:24

tiramiseb

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

Inzaguiz a écrit :

Après avoir définit le nom du fichier il me dit :

Traceback (most recent call last):
  File "C:\Users\meyrignac\Documents\Documents Scolaires\Audran\ISN\projet\Yakusa v0.4.py", line 15, in <module>
    sys.exit(-1)
SystemExit: -1 

Ce n'est pas le retour complet de la commande.

N'aurais-tu pas, par hasard, un message du genre de celui-ci juste au-dessus ?

Plays a wave file.

Usage: Yakusa v0.4.py filename.wav

Hors ligne

#18 Le 25/05/2015, à 14:25

tiramiseb

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

L'exemple que tu as pris pour essayer, il demande que tu mettes le nom du fichier comme premier argument de la commande. Est-ce bien ce que tu as fait ?


... as-tu essayé de comprendre ce bout de code avant de le copier-coller ?

Hors ligne

#19 Le 25/05/2015, à 14:35

grim7reaper

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

Salut,

Si tu ne vises que Linux, tu pourrais passer par GStreamer et son binding Python.
Pour un exemple d‘utilisation tu peux regarder ici (pour la partie wrapping de GStreamer, c’est indépendant de GTK) et (pour l‘appel).

Hors ligne

#20 Le 25/05/2015, à 14:45

Inzaguiz

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

Oui j'ai mit le bon fichier et la bonne extension. Sinon j'ai essayer de comprendre et j'ai rien compris du tout..

Hors ligne

#21 Le 25/05/2015, à 14:46

tiramiseb

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

Déjà, remontre-nous le retour mais complet, cette fois-ci, pas juste un extrait : il faut inclure la ligne qui contient ce que tu as tapé.

Hors ligne

#22 Le 25/05/2015, à 14:54

Inzaguiz

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

Code :

import pyaudio
import wave
import sys

CHUNK = 1024

if len(sys.argv) < 2:
    print("Plays a wave file.\n\nUsage: %s BandeSon.wav" % sys.argv[0])
    sys.exit(-1)

wf = wave.open(sys.argv[1], 'rb')

p = pyaudio.PyAudio()

stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
                channels=wf.getnchannels(),
                rate=wf.getframerate(),
                output=True)

data = wf.readframes(CHUNK)

while data != '':
    stream.write(data)
    data = wf.readframes(CHUNK)

stream.stop_stream()
stream.close()

p.terminate()

Alors pour la ligne :

sys.exit(-1)

Il y a ça :

Traceback (most recent call last):
  File "C:\Users\meyrignac\Documents\Documents Scolaires\Audran\ISN\Yakusa\Yakusa v0.4.py", line 16, in <module>
    sys.exit(-1)
SystemExit: -1

Si je la rend invisible (#) j'ai une autre erreur qui semble venir du module pyaudio (wave.py) :

Traceback (most recent call last):
  File "C:\Users\meyrignac\Documents\Documents Scolaires\Audran\ISN\Yakusa\Yakusa v0.4.py", line 18, in <module>
    wf = wave.open(sys.argv[1], 'rb')
IndexError: list index out of range

sur la ligne :

wf = wave.open(sys.argv[1], 'rb')

Dernière modification par Inzaguiz (Le 25/05/2015, à 17:06)

Hors ligne

#23 Le 25/05/2015, à 14:57

tiramiseb

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

remontre-nous le retour mais complet [...] il faut inclure la ligne qui contient ce que tu as tapé. (bis)

Hors ligne

#24 Le 25/05/2015, à 14:58

tiramiseb

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

une autre erreur qui semble venir du module pyaudio

Non, ce n'est pas une erreur du module pyaudio, c'est lié à ton "sys.argv[1]", j'ai encore une fois l'impression que tu as lancé la commande sans lui donner comme argument le nom du fichier.

Mais vu que tu ne montres pas la ligne que tu tapes, on n'a aucun moyen de confirmer ou infirmer cette supposition.

Hors ligne

#25 Le 25/05/2015, à 17:05

Inzaguiz

Re : [PYTHON] Gérer de la musique sans Pygame ? Installer Pygame ?

Elles y sont les lignes non ? Je comprend pas ce que tu me dis en faite. Il me dis erreur ligne 16 je te l'ai filé la ligne 16....

Hors ligne