Dimanche, 19 avril

En utilisant la méthode de chercher la couleur rouge dans Unity, nous avons rencontré deux problèmes:

  1. La méthode GetPixels reconnaît plusieurs fois le ballon rouge au-bas de la texture, donc le son jouait souvent.
  2. En initialisant le programme, les valeurs de RGB sont tous à 1, puis descendent immédiatement à 0, mais au tout début la valeur de rouge est plus grand que 0.9, donc le son est joué.

La deuxième erreur était simple à résoudre. En effet, ce n’était même pas dû au fait que les valeurs de RGB étaient initialisées à 1 au lancement du programme, il fallait simplement décocher la paramètre Play on Awake du GameObject dans la scène de Unity.

La première erreur a fallu plusieurs lignes de code pour résoudre, mais ce n’est rien de complexe. En gros, nous avons définit une variable booléenne goingDown qui détermine si la baguette se dirige vers le bas pour exécuter une frappe ou non. Lorsque goingDown est vraie, le programme cherche à identifier les pixels rouges au bas de l’écran, comme avant. Lorsque la frappe est exécutée (le son est joué), la variable goingDown est mise à fausse, pour ne pas engendrer plus de frappes. La baguette doit alors revenir en-haut de la texture de la webcam, où il y a maintenant un deuxième bloc d’identification de pixels rouges. Lorsque la baguette est identifiée en-haut, la variable est mise à nouveau à vraie, et le processus recommence.

De plus, de cette manière, le programme ne cherche pas constamment des pixels rouges au-bas et en-haut de la texture, seulement l’endroit où il est nécessaire. Voici un test du programme à ce stade-ci:

Laisser un commentaire

Concevoir un site comme celui-ci avec WordPress.com
Commencer