Je voudrais détecter l'emplacement exact du clic de souris dans la grille 3x3 affichée à l'écran. Comment cela peut-il être fait dans MIT Scratch? Des suggestions?
3 Réponses :
Il existe deux façons de procéder.
Vous pouvez créer 9 sprites, les masquer et utiliser l'événement When this sprite clicked ...
... mais ce serait beaucoup de sprites inutiles.
Ou vous pouvez effectuer les opérations suivantes:
Comme l'a dit @PullJosh, vous pouvez utiliser les blocs x et y de la souris. Faites juste quelques maths:
Vous savez que l'étape passe de X: -240 à 240, Y: -180 à 180.
Il suffit de mettre cela dans du code pour détecter les plages, ci-dessous un lien vers un projet qui en est un exemple:
Ce projet
(Remarque: cela suppose que les cases de la grille sont de la même taille.)
Merci beaucoup. Désolé pour la réponse tardive. Nous avons créé quelque chose de similaire, mais en utilisant des listes pour stocker l'emplacement X et l'emplacement Y. On peut écrire les coordonnées à lister au moment de la création. Mais c'est un peu difficile lorsque nous utilisons des clones.
CatDev, veuillez partager votre identifiant de messagerie si possible,
when greenFlag pressed forever if <mouse down?> then set (lastMouseClickX) to (mouse x) set (lastMouseClickY) to (mouse y) end wait until <not<mouse down?>> end```
Bien que ce code puisse fournir une solution à la question, il est préférable d'ajouter un contexte expliquant pourquoi / comment cela fonctionne. Cela peut aider les futurs utilisateurs à apprendre et à appliquer ces connaissances à leur propre code. Vous êtes également susceptible d'avoir des commentaires positifs des utilisateurs sous la forme de votes positifs, lorsque le code est expliqué.
Les blocs "souris x" et "souris y" de la catégorie détection peuvent-ils vous aider dans ce que vous essayez de faire?
Merci pour la réponse .... dans une certaine mesure, "souris x" et "souris y" vous aideront, mais nous avons besoin de plus que cela. Imaginez avoir 9 cases à l'écran et vous devez identifier le clic de souris sur une case particulière.