Arrêter le dessin d'une figure turtle

Résolu/Fermé
Yazho Messages postés 87 Date d'inscription dimanche 24 mars 2019 Statut Membre Dernière intervention 14 septembre 2022 - 16 mai 2021 à 14:09
Yazho Messages postés 87 Date d'inscription dimanche 24 mars 2019 Statut Membre Dernière intervention 14 septembre 2022 - 17 mai 2021 à 13:05
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

yg_be Messages postés 22708 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474
16 mai 2021 à 15:57
bonjour,
peux-tu montrer ton programme?
tiens compte de ceci: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
Yazho Messages postés 87 Date d'inscription dimanche 24 mars 2019 Statut Membre Dernière intervention 14 septembre 2022 2
17 mai 2021 à 12:31
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)
        
0
yg_be Messages postés 22708 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474
17 mai 2021 à 12:58
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
0
Yazho Messages postés 87 Date d'inscription dimanche 24 mars 2019 Statut Membre Dernière intervention 14 septembre 2022 2 > yg_be Messages postés 22708 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024
17 mai 2021 à 13:05
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
0