Partage
  • Partager sur Facebook
  • Partager sur Twitter

Programmation orienté objet

Changement de proportion d'une balle

    8 juillet 2010 à 6:42:57

    Bonjour, j'aimerais changer les proportion d'une balle en déplacement, mais mon compilateur me dit que mes variable ne sont pas déclarées o_O

    from tkinter import *
    
    # définition des gestionnaires
    # d'événements :
    
    def move():
        "déplacement de la balle"
        X = 30
    while(X != 77):
    
        global x1, y1, dx, dy, flag,coul, X
        x1, y1 = x1 +dx, y1 + dy
        
        if x1 >210:
            can1.itemconfigure(oval1, fill= 'green')
            x1, dx, dy = 210, 5, 5
    
        if y1 >210:           
            can1.itemconfigure(oval1, fill= 'blue')
            y1, dx, dy = 210, -5, 5
    
        if x1 <10:
            can1.itemconfigure(oval1, fill= 'yellow')
            x1, dx, dy = 10, 5, -5
    
        if y1 <10:
            can1.itemconfigure(oval1, fill= 'black')
            y1, dx, dy = 10, 15, 5
    
        if(X>0):
            X -= 10
        if(X==0):
            X += 10
            
        can1.coords(oval1,x1,y1,x1+X,y1+X)
        if flag >0:
            fen1.after(10,move)
       
        
    
    
    
    
    def stop_it():
        "arret de l'animation"
        global flag    
        flag =0
    
    def start_it():
        "démarrage de l'animation"
        global flag
    
        if flag ==0:       # pour ne lancer qu'une seule boucle
         flag =1
         move()
    
        
    
    #========== Programme principal =============
    
    # les variables suivantes seront utilisées de manière globale :
    x1, y1 = 100, 30         # coordonnées initiales
    dx, dy = 15, 15          # 'pas' du déplacement
    flag =0                  # commutateur
    
    
    
    # Création du widget principal ("parent") :
    fen1 = Tk()
    fen1.title("Exercice d'animation avec Tkinter")
    # création des widgets "enfants" :
    can1 = Canvas(fen1,bg='dark grey',height=250, width=250)
    can1.pack(side=LEFT, padx =5, pady =5)
    oval1 = can1.create_oval(x1, y1, x1+30, y1+30, width=2, fill='red')
    bou1 = Button(fen1,text='Quitter', width =8, command=fen1.quit)
    bou1.pack(side=BOTTOM)
    bou2 = Button(fen1, text='Démarrer', width =8, command=start_it)
    bou2.pack()
    bou3 = Button(fen1, text='Arrêter', width =8, command=stop_it)
    bou3.pack()
    # démarrage du réceptionnaire d'évènements (boucle principale) :
    fen1.mainloop()
    



    Je bloque ici:
    x1, y1 = x1 +dx, y1 + dy
    
    • Partager sur Facebook
    • Partager sur Twitter
      8 juillet 2010 à 9:55:09

      Pourquoi créer deux sujets ?
      • Partager sur Facebook
      • Partager sur Twitter
        8 juillet 2010 à 18:09:17

        non non non, les sujet sont belle est bien différent
        • Partager sur Facebook
        • Partager sur Twitter
          8 juillet 2010 à 19:28:04

          Ce n'est pas de la programmation orienté objet. Et tu n'emploies pas un compilateur mais un interpréteur.
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme

          Programmation orienté objet

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown