Menu

Comment stopper l'horloge démarrée par : Clock.schedule_interval

Messages postés
62
Date d'inscription
samedi 24 septembre 2016
Dernière intervention
17 décembre 2018
- - Dernière réponse : Gerard.isa
Messages postés
62
Date d'inscription
samedi 24 septembre 2016
Dernière intervention
17 décembre 2018
- 4 déc. 2018 à 17:20
Bonjour,
Pour la suite de mon petit jeu pour enfant, je n'arrive pas à trouver comment stopper l'horloge démarrée par :
Clock.schedule_interval(self.deplacement, 10.0/100.0)
Merci de m'éclairer

Configuration: Windows / Firefox 63.0
Afficher la suite 

Votre réponse

4 réponses

Messages postés
7057
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 décembre 2018
0
Merci
bonjour,
suggestion:
monevenement = Clock.schedule_interval(my_callback, 0.5)
# pour arrêter:
monevenement.cancel()
# possible aussi d’arrêter ainsi, non recommandé pour des raisons de performance:
Clock.unschedule(my_callback)
Commenter la réponse de yg_be
Messages postés
62
Date d'inscription
samedi 24 septembre 2016
Dernière intervention
17 décembre 2018
0
Merci
Salut yg_be,

Merci de ton aide.
Je débute en Python.
Voici mon bout de code, ce serait sympa de me montrer comment utiliser ta solution.



class Voiture(Widget):
    def __init__(self,canvas):
        self.dx = 10
        self.canvas=canvas
        #Taille et position:
        self.size=(Window.size[0]*0.4,Window.size[1]*0.4)
        #self.pos=(0,Window.size[1]*0.02)
        self.pos=(0,0)
        #Ajout de l'image
        CheminImageVoiture = "Z:\\Projet Jeu\\Images\\Voiture01.png"
        with self.canvas:
            self.dessin = Rectangle(source=CheminImageVoiture,size=self.size, pos=self.pos)
        self.bind(pos=self.update_canvas)

    def update_canvas(self, *args):#Mise a jour des positions de l'image:
        self.dessin.pos = self.pos 

    def move(self, fin)
        self.x=self.x+self.dx
        print(self.x)
        if self.x > 600: # limite de l'ecran
            fin=True
        return(fin)
        
    def positionner(self, obj_form): #positionne la forme exactement à son emplacement
        if triangle_actif == False and demi_actif == False and hexa_actif == False:
            self.deplace_voiture() # si toutes les formes sont bien positionnées on fait sortir la voiture de l'écran
        
    def deplace_voiture(self):
        Clock.schedule_interval(self.deplacement_voiture, 10.0/100.0)

    def deplacement_voiture(self, dt):#Deplacement de la voiture et des formes
        fin = False
        self.voiture.move(fin)
        if fin:
            quelque chose pour arrêter l'horloge (et donc le déplacement)
yg_be
Messages postés
7057
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 décembre 2018
-
suggestion:
def deplacement_voiture(self, dt):#Deplacement de la voiture et des formes
        fin = False
        fin = self.voiture.move(fin)
        return (not fin)
Commenter la réponse de Gerard.isa
Messages postés
62
Date d'inscription
samedi 24 septembre 2016
Dernière intervention
17 décembre 2018
0
Merci
Le return (not fin) va renvoyer un False qui mettra fin à l'horloge ?
C'est ça qu'il faut comprendre ?

Si je n'ai rien compris, pourrais-tu détailler stp ?
yg_be
Messages postés
7057
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 décembre 2018
-
tu as bien compris.
Commenter la réponse de Gerard.isa
Messages postés
62
Date d'inscription
samedi 24 septembre 2016
Dernière intervention
17 décembre 2018
0
Merci
Ok, encore merci,
+
Commenter la réponse de Gerard.isa