Arrêter le dessin d'une figure turtle [Résolu]

Signaler
Messages postés
81
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
18 mai 2021
-
Messages postés
81
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
18 mai 2021
-
Bonjour alors j'ai une question je programme en tkinter et j'utilise la fonction Rawturtle() mais je n'arrive pas a arrêter le dessin de par un évènement c'est a dire que la tortue dessine une courbe et j'aimerai l'arrêter pendant qu'elle est en train de la dessiner est-ce possible ? merci

2 réponses

Messages postés
16057
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 juin 2021
867
bonjour,
peux-tu montrer ton programme?
tiens compte de ceci: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Messages postés
81
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
18 mai 2021

oui bien sur
et pour etre plus precis j'aimerai qu'il arrete ce dessin t.circle(520,60)
c =False
cash=False
tt=None
y=-130
total=0

def anim(cpt,nombre):
    """fonction qui va animer et ecrire tous les resultats, elle va ecrire le multiplicateur en temps réel, la somme que l'on
      peut recup en direct, puis va ecrire la mise gagner ou perdu 
      et pour finir la fonction va ecrire la somme total que l'on gagne ou perde"""
    global id_anim,mlt,mlt2,etat,c,euro,y,cash,total,tt
    
    if cpt<=nombre:
        if mlt==None:
            mlt = can1.create_text(-60, -50, text ="x"+str(round(float(cpt),2)), fill="white",font="Arial 50 bold"  )
            mlt2 = can1.create_text(-310, 215, text =str(round(euro*float(cpt),2))+"$", fill="white",font="Arial 15 bold"  )
            id_anim=can1.after(20, anim, round(cpt+0.01,2), nombre)
            
            
        else:
                can1.delete(mlt)
                can1.delete(mlt2)
                mlt = can1.create_text(-60, -50, text ="x"+str(round(float(cpt),2)),fill="white" ,font="Arial 50 bold"  )   
                mlt2 = can1.create_text(-310, 215, text =str(round(euro*float(cpt),2))+"$", fill="white",font="Arial 15 bold"  )
                id_anim=can1.after(20, anim, round(cpt+0.01,2), nombre)
                gain=str(round(euro*float(cpt),2))
                
                if c == True :  
                    # quand ça passe ici il faudrait que le turtle arrete de dessiner
                    c=False
                    can1.delete(tt)
                    total+=float(gain)
                    tt=can1.create_text(300,190, text =str(round(float(total),2))+"$", fill="white",font="Arial 20 bold"  )
                    if y<=140:
                        somme=can1.create_text(300, y, text = "+"+gain+"$", fill="green",font="Arial 15 bold"  )
                        y+=30
                    else:
                        can1.delete(tt)
                    
                    
                
    else:
        print(cash)
        go=Button(Mafenetre , text="REJOUER", command=lambda:[reset(), go.destroy()])
        go.place(x=300,y=100)
        go.config(bg="#8c8c8c" ,activebackground="#8c8c8c",font=("Open Sans", 10))
        if c==False and cash == False:
          # quand ça passe ici il faudrait que le turtle arrete de dessiner
          somme=can1.create_text(300, y, text = "-"+str(euro)+"$", fill="red",font="Arial 15 bold"  )  
          total=total-euro
          can1.delete(tt)
          if y<=140:
              tt=can1.create_text(300, 190, text =str(round(float(total),2))+"$", fill="white",font="Arial 20 bold"  )
              y=y+30
          else:
             can1.delete(tt)
 
          
        

 
        
# =============================================================================
# quand clique sur le bouton BET
# =============================================================================
#
go =None
def parier():
    """quand le bouton bet est pressé """
    global etat,cpt,bet,go
    """  """
    if euro !=0 and etat==0:

        can1.create_rectangle((-380,177),(-240,227), fill="#16c74b" , width=0 )
        cash = can1.create_text(-310, 190, text ="CASHOUT", fill="white",font="Arial 15 bold"  )
        etat=1
        nombre = end()
        anim(1.00,1.5) 
        t.speed(1)
        t.width(5)
        t.forward(50)
        t.circle(520,60)
        
Messages postés
16057
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 juin 2021
867
je pense que tu peux faire tourner la tortue, pas à pas, dans un autre thread, en t'inspirant de cet exemple:
https://openclassrooms.com/forum/sujet/tkinter-et-threading
Messages postés
81
Date d'inscription
dimanche 24 mars 2019
Statut
Membre
Dernière intervention
18 mai 2021
>
Messages postés
16057
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 juin 2021

je vais essayer ça mais j'avais déjà essayé de faire tourner la tortue pas à pas avec des micro courbe mais le problème c'est qu'elle a des micro freeze entre chaque courbe