De Scratch Wiki en Français


Le bloc « couleur [] touchée ? »



<couleur [] touchée?>
<couleur [] touchée?>

Catégorie : Capteur
Type : Bloc booléen
Ajouté dans : ?
Retiré dans :  ?
Entrées : 1 (valeur)
Code du bloc : <couleur [] touchée?>


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 ou dans les blocs "Attendre jusqu'à <>" et "Répéter jusqu'à <>".
  • 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))

Info Info :
Chacune des variables varie de 0 à 255.
  • 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.
Info Info :
Dans ce cas, l'opacité ne nous intéresse pas car il est nécessaire qu'elle reste à 0 pour que la détection des couleurs fonctionne.
Info Info :
Une opacité de 0 équivaut à une opacité de 255, c'est l'opacité maximale.
Info Info :
L'opacité minimale est donc atteinte pour la valeur 1*(16777216)

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

Info Info :
Il est important d'utiliser le bloc


choisir la couleur [#37d3e3] pour le stylo
plutôt que le bloc
mettre la couleur du stylo à ()

pour réaliser cette opération. Sinon, la couleur du stylo ne correspondra pas à celle souhaitée.

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.

Info Info :
Prenez garde à ne pas oublier le # avant d'insérer votre code hexadécimal.
Info Info :
Le code doit être précédé de la balise [scratchblocks] pour être visible et suivi de la balise [/scratchblocks] pour éviter les bugs.
Info Info :
Idem pour insérer le bloc dans le wiki, mais les balises à insérer sont <scratchblocks> et </scratchblocks> ou <sb> et </sb>.

Bloc similaire

couleur [#000000] touche [#FF0000] ? Ce bloc vérifie si deux couleurs données sont en contact.