De Scratch Wiki en français

Révision datée du 19 avril 2021 à 08:26 par Felix 56 (discussion | contributions) (Création de la page)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)


Comment détecter quand le bouton d'arrêt est cliqué ?


Nombreux sont ceux qui ont demandé un bloc quand le bouton d'arrêt est cliqué. Mais il a été refusé car il irait à l'encontre du bloc stop tout. En plus, 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 un jeu
  • afficher la vignette d'un jeu

Méthodes

Méthode 1

Info
 Info :
Utilisez cette méthode si le chronomètre est nécessaire pour votre jeu
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 le détecteur égal au 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 quand le chrono arrive à la valeur du 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
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é, le script ne fonctionne plus et le 2ème script attend que le chronomètre dépasse la valeur indiquée pour s'exécuter.

Lié

Cet article est une traduction d'un article du Scratch Wiki EN. Si vous voulez le voir, cliquez ici.

Info
 Info :
Dans la 1ère méthode, vous avez un bloc
si <(chronomètre) > (détecteur)> alors

end
Ce bloc était présent pour régler un ancien bug qui est expliqué dans un commentaire à côté de ce bloc. Mais comme ce bug est réglé, ce bloc n'est plus nécessaire et c'est pour ça qu'il n'est pas présent dans cette traduction.
Les cookies nous aident à fournir nos services. En utilisant nos services, vous acceptez notre utilisation des cookies.