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

Fermé
Gerard.isa Messages postés 100 Date d'inscription samedi 24 septembre 2016 Statut Membre Dernière intervention 14 mars 2024 - 3 déc. 2018 à 01:16
Gerard.isa Messages postés 100 Date d'inscription samedi 24 septembre 2016 Statut Membre Dernière intervention 14 mars 2024 - 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
A voir également:

4 réponses

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
3 déc. 2018 à 13:38
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)
0
Gerard.isa Messages postés 100 Date d'inscription samedi 24 septembre 2016 Statut Membre Dernière intervention 14 mars 2024 2
4 déc. 2018 à 00:08
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)
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
Modifié le 4 déc. 2018 à 09:47
suggestion:
def deplacement_voiture(self, dt):#Deplacement de la voiture et des formes
        fin = False
        fin = self.voiture.move(fin)
        return (not fin)
0
Gerard.isa Messages postés 100 Date d'inscription samedi 24 septembre 2016 Statut Membre Dernière intervention 14 mars 2024 2
4 déc. 2018 à 11:01
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 ?
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
4 déc. 2018 à 15:37
tu as bien compris.
0
Gerard.isa Messages postés 100 Date d'inscription samedi 24 septembre 2016 Statut Membre Dernière intervention 14 mars 2024 2
4 déc. 2018 à 17:20
Ok, encore merci,
+
0