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 :

aide pour un exercice "deplacement d'une balle"


Sujet :

Tkinter Python

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    bonjour a tous,

    je suis un nouveau apprentis et j'aurai besoin d'aide pour créer une fonction qui fait avancé un point x jusqu'à l'extrémité d'un canvas et le faire revenir dans l'autre sens ainsi de suite a l'aide d'un seul bouton. j'arrive pas a faire revenir le point dans l'autre sens une fois l'extrémité atteinte. il y a un truc qui m'échappe et j'arrive pas a trouver ce que c'est .

    Je suis sous linux et j'utilise Tkinter.
    merci pour votre aide
    cordialement

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 049
    Points : 1 380
    Points
    1 380
    Par défaut
    et si tu nous postais ton code ...

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    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
    # -*- coding: -utf-8  -*-
    from Tkinter import *
     
    def avance(xp,yp):
    	global x,y
    	x,y=x+xp,y+yp
    	can.coords(astre,x,y,x+30,y+30)
     
    def deplacement():
    	if x<370:
    		avance(10,0)
    	if "la jy arrive pas":
    	        avance(-10,0)
    x,y=0,100
     
    fen=Tk()
     
    can=Canvas(fen,width=400,height=200,bg="black")
    astre=can.create_oval(x,y,x+30,y+30,fill="white")
    can.grid(row=0,column=0)
    bou=Button(fen,text="Start",command=deplacement).grid(row=1,sticky=W)
     
    fen.mainloop()
    le probleme c'est qu'il faut utiliser qu'un seul bouton pour allez dans les deux sens
    dans ma fonction deplacement() quand j'utilise les condition pour moi c'est pas possible j'arrive pas a le faire comprendre a l'ordi. x=0 si x<=370 j'avance jusqu'a l'extrémité et si je veux revenir en arriere c'est chaud car x=370 et je recule mais je revien a la 1er condition. eclairer moi svp car mon raisonnement est pourrit je pense
    merci

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    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
     
    # -*- coding: -utf-8  -*-
    from Tkinter import *
     
    def avance(xp,yp):
        global x, y
        x, y = x + xp, y + yp
        can.coords(astre, x, y, x+30, y+30)
     
    def deplacement():
        global a
        if x == 370:
            a = -10
        elif x == 0:
            a = 10
        avance(a,0)
     
    a, x, y = 10, 0, 100
     
    fen = Tk()
    can = Canvas(fen, width=400, height=200, bg="black")
    astre = can.create_oval(x, y, x+30, y+30, fill="white")
    can.grid(row=0, column=0)
    bou = Button(fen, text="Start", command=deplacement).grid(row=1, sticky=W)
     
    print bou
     
    fen.mainloop()
    Ca ne marche que tant que la distance totale est multiple de la valeur du déplacement.

    J'ai ajouté 'print bou' pour que tu vois ce que renvoie la méthode grid(), il faut se méfier de ça et mettre plutôt le .grid() sur une seconde ligne.

    Edit : Ah oui, et aère ton code.

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    re

    je vous remercie je me suis pris la tete avec j'allais meme abondonner. je prend vous conseils messieurs, dames pour améliorer mes compétences j'en suis à zéro pour l'instant mes j'espere que ca va venir. encore merci
    merci VinsS

Discussions similaires

  1. [MySQL] Aide pour affichage de donné recup dans une BD
    Par mitchb dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/05/2006, 11h38
  2. Besoin d'aide pour un exercice sur les registres
    Par zakuza dans le forum Assembleur
    Réponses: 5
    Dernier message: 14/04/2006, 14h23
  3. Aide pour un exercice
    Par nelob dans le forum Assembleur
    Réponses: 5
    Dernier message: 02/03/2006, 23h46
  4. Demande d'aide pour un exercice
    Par IDE dans le forum C
    Réponses: 3
    Dernier message: 29/10/2005, 15h09

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