IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

Probleme methode move [Python 3.X]


Sujet :

Tkinter Python

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien
    Inscrit en
    Février 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2010
    Messages : 59
    Points : 113
    Points
    113
    Par défaut Probleme methode move
    Bonjour,
    Je ne comprends pas le mouvement que suit la balle dans le programme. J'attend qu'elle se deplace de la gauche vers la droite parallele l'axe x.
    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    from tkinter import *
     
    class Balle(object):
        def __init__(self,boss,x,y,r):
            self.boss = boss
            self.x,self.y = x,y
            self.balle = boss.create_oval(x-r,y-r,x+r,y+r, width=2,fill='red')
            self.xMax =int(boss.cget('width'))
            self.yMax =int(boss.cget('height'))
            self.anim = True    #interupteur d'animation
     
        def deplacement(self):
            "deplacement uniforme de la balle"
            if self.anim:
                if self.x > self.xMax or self.y > self.yMax :
                    self.anim = False
                self.x = self.x+ 5
                #self.y = self.y + 5
                #print('x= ',self.x, 'y= ',self.y)
                self.boss.move(self.balle,int(self.x),int(self.y))
                print('x= ',self.x, 'y= ',self.y)
                self.boss.after(1000,self.deplacement)
     
     
     
     
    if __name__ == '__main__':
        f= Tk()
        can=Canvas(f,width=300,height=300,bg='ivory')
        can.pack(padx=10, pady=10)
        b1=Balle(can,10,150,5)
        Button(f,text='demarrer',width=8,command=b1.deplacement).pack(side=LEFT)
        f.mainloop()

  2. #2
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par loncle Voir le message
    Bonjour,
    Je ne comprends pas le mouvement que suit la balle dans le programme. J'attend qu'elle se deplace de la gauche vers la droite parallele l'axe x.
    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    from tkinter import *
     
    class Balle(object):
        def __init__(self,boss,x,y,r):
            self.boss = boss
            self.x,self.y = x,y
            self.balle = boss.create_oval(x-r,y-r,x+r,y+r, width=2,fill='red')
            self.xMax =int(boss.cget('width'))
            self.yMax =int(boss.cget('height'))
            self.anim = True    #interupteur d'animation
     
        def deplacement(self):
            "deplacement uniforme de la balle"
            if self.anim:
                if self.x > self.xMax or self.y > self.yMax :
                    self.anim = False
                self.x = self.x+ 5
                #self.y = self.y + 5
                #print('x= ',self.x, 'y= ',self.y)
                self.boss.move(self.balle,int(self.x),int(self.y))
                print('x= ',self.x, 'y= ',self.y)
                self.boss.after(1000,self.deplacement)
     
     
     
     
    if __name__ == '__main__':
        f= Tk()
        can=Canvas(f,width=300,height=300,bg='ivory')
        can.pack(padx=10, pady=10)
        b1=Balle(can,10,150,5)
        Button(f,text='demarrer',width=8,command=b1.deplacement).pack(side=LEFT)
        f.mainloop()
    Bonjour,
    Un problème est que la position ainsi que le taille sont confondues dans le script.
    La méthode est "w.move(balle, deltax, deltay)". Le script déplace donc la balle de y (c'est à dire 150) et de ce fait sort du cadre.
    Ainsi, pour un déplacement de il faudrait écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.boss.move(self.balle,5,0)
    à la place de la ligne 20 du code. Et supprimer l'incrémentation de x.
    Sinon, c'est par la méthode "w.coords" qu'il faut passer (afin d'utiliser x et y).

    Clodion

  3. #3
    Membre régulier
    Homme Profil pro
    Technicien
    Inscrit en
    Février 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2010
    Messages : 59
    Points : 113
    Points
    113
    Par défaut
    Super, j'ai compris. Merci Clodion

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme methode repaint()
    Par cybercrisp dans le forum AWT/Swing
    Réponses: 14
    Dernier message: 24/10/2006, 23h21
  2. [FLASH 8] Probleme méthode send de LoadVars
    Par dom_dev dans le forum Flash
    Réponses: 11
    Dernier message: 26/09/2006, 12h07
  3. Réponses: 2
    Dernier message: 23/08/2006, 15h47
  4. probleme methode="post"
    Par ardamus dans le forum Langage
    Réponses: 8
    Dernier message: 01/03/2006, 11h30
  5. Probleme Methode POST
    Par pidu dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 06/02/2006, 17h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo