De Scratch Wiki en Français
Description du bloc
Ce bloc capteur permet de détecter si le costume du lutin possédant ce bloc touche une couleur spécifique dans l'arrière plan ou sur un costume d'un autre lutin. Il renvoie une valeur de type booléenne (vrai ou faux), il est donc utilisé dans les blocs de condition comme les si et dans certaines boucles.
Exemple
Ce bloc est souvent utilisé dans des jeux de plateformes pour détecter si le lutin touche le sol ou des obstacles.
Le code ci-dessous permet à un lutin de s'arrêter de tomber lorsque la couleur noire est touchée.
répéter jusqu’à <couleur [#000000] touchée?>
ajouter (-1) à y
end
Utilisation
Utilisation classique
- Pour être utilisé correctement, le bloc doit être placé dans une condition.
- La couleur à détecter est réglable en cliquant dans le carré de couleur puis en cliquant à l'endroit où se trouve la couleur choisie.
- Ce bloc ne fonctionne pas si le costume du lutin est vide ou si le lutin est les caché. Toutefois, il fonctionne toujours si le lutin subit l'effet fantôme (quelque soit l'intensité de l'effet).
- Il détecte également les tracés effectués avec le stylo.
Utilisation poussée
Il est possible d'utiliser ce bloc de manière plus poussée pour récupérer la couleur touchée par le lutin.
En effet, ce bloc utilise le code RVBA, il est donc possible de tester un grand nombre de couleurs pour trouver celle(s) touchée(s) par le lutin.
Pour faire cela, on exploite le fait que le bloc puisse contenir une variable (voir ci-dessous)
<couleur (couleur) touchée?>
Il est possible de créer le code de toutes les couleurs disponibles sur scratch grâce au code suivant :
(((A) * (16777216)) + ((R) * (65536))) + (((V) * (256)) + (B))
- La variable R correspond au niveau de rouge de la couleur testée.
- La variable V correspond au niveau de Vert de la couleur testée.
- La variable B correspond au niveau de bleu de la couleur testée.
- La variable A correspond à la transparence ou opacité de la couleur testée.
Ainsi, pour tester toutes les couleurs possibles, le script suivant est nécessaire:
mettre [R v] à [0]
répéter (32) fois
mettre [V v] à [0]
répéter (32) fois
mettre [B v] à [0]
répéter (16) fois
si <couleur (((R) * (65536)) + (((V) * (256)) + (B))) touchée?> alors
mettre [Couleur v] à (((R) * (65536)) + (((V) * (256)) + (B)))
dire (Couleur)
stop [ce script v]
end
ajouter à [B v] (16)
end
ajouter à [V v] (8)
end
ajouter à [R v] (8)
end
Ce script va détecter et dire la valeur d'une couleur touchée par le lutin.
La valeur ainsi récupérée peut être utilisée pour définir la couleur du stylo (voir ci-dessous) :
choisir la couleur (couleur) pour le stylo
choisir la couleur [#37d3e3] pour le stylo
plutôt que le bloc
mettre la couleur du stylo à ()
Dans le forum
Dans le forum, vous pouvez intégrer des blocs Scratch grâce au BBcode. Voici le code nécessaire :
<couleur [#FFFFFF] touchée?>
Ce qui donnera :
<couleur [#FFFFFF] touchée?>
La valeur située entre les crochets est un code hexadécimal. Vous pouvez trouver le code correspondant à chaque couleur ici.
Bloc similaire
couleur [#000000] touche [#FF0000] ?
Ce bloc vérifie si deux couleurs données sont en contact.
blocs de capteur :: sensing