De Scratch Wiki en français

Révision datée du 2 mai 2021 à 20:49 par Smrman (discussion | contributions) (Smrman a déplacé la page Détecter quand le bouton d'arrêt est cliqué vers Détecter quand le bouton d'arrêt est cliqué (tutoriel) sans laisser de redirection)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)


Détecter quand le bouton d'arrêt est cliqué (tutoriel)


Nombreux sont ceux qui ont demandé un bloc quand le bouton d'arrêt est cliqué ::events hat. Mais il a été refusé car il irait à l'encontre du bouton d'arrêt et du bloc stop [tout v]. C'est très facile de le reproduire sur Scratch.

Utilité

Détecter quand le bouton d'arrêt est cliqué est très utile dans certains projets, comme par exemple :

  • dire au revoir quand quelqu'un quitte le jeu
  • afficher la vignette d'un jeu

Méthodes

Ces méthodes utilisent une des propriétés du chronomètre intégré aux projets Scratch : celui-ci continue de fonctionner même quand le bouton d'arrêt est cliqué.

Méthode 1

Info
 Info :
Utilisez cette méthode si le chronomètre est nécessaire pour votre jeu, elle nécessite l'utilisation d'une variable
quand le drapeau vert pressé
répéter indéfiniment
mettre [détecteur v] à ((chronomètre) + (0.1)) // si vous ne voulez pas de délai après le clic sur le bouton, mettez juste "chronomètre"
end


quand le [chronomètre v] > (détecteur)
...
stop [ce script v]

Le 1er script met continuellement la valeur de la variable détecteur égale à celle du chronomètre en ajoutant le délai entre le clic sur le bouton d'arrêt et l'exécution du 2ème script. Quand le bouton d'arrêt est cliqué, le 1er script ne fonctionne plus et la variable détecteur n'est plus modifiée. Par contre le chronomètre continue et quand sa valeur dépasse alors celle de la variable détecteur, le 2ème script s'exécute.

Méthode 2

Attention
 Attention :
N'utilisez cette méthode que si le chronomètre n'est pas nécessaire car sa valeur est perpétuellement remise à zéro par un script.
quand le drapeau vert pressé
répéter indéfiniment
réinitialiser le chronomètre
end


quand le [chronomètre v] > (0.3) //  vous pouvez modifier le délai pour en avoir un plus long ou plus court, ou vous pouvez tout simplement mettre "0" pour une exécution instantanée
...

Le 1er script réinitialise le chronomètre pendant toute l'exécution du projet. Quand le bouton d'arrêt est cliqué, ce script cesse de s'exécuter et le chronomètre fonctionne alors normalement. Le 2ème script attend que le chronomètre dépasse la valeur indiquée pour s'exécuter. Contrairement à la première méthode, la deuxième ne nécessite pas l'utilisation d'une variable. Par contre vous ne pouvez utiliser le chronomètre pour mesurer le temps dans votre projet.

Ancien bug

Un bug était présent dans une ancienne version de Scratch. Il consistait à compter la variable détecteur comme "0" à la toute 1ère exécution du projet. Pour régler ce bug, on était obligés d'utiliser un bloc si <(chronomètre) > (détecteur)> alors . Ce bug est actuellement réglé et c'est pour cela que le bloc au-dessus n'est pas présent dans ce tutoriel.

Cet article fait partie de la catégorie des tutos
Tous les articles de cette catégorie :
Les cookies nous aident à fournir nos services. En utilisant nos services, vous acceptez notre utilisation des cookies.