Maxim COMPS

Choppe Lapin

Objectifs et Présentation

À partir d’un écran et d’un télémètre laser, l’objectif de ce jeu est d’attraper un lapin avant qu’il ne déguerpisse. La vitesse de la main est régie par l’état du lapin affiché à l’écran. Il peut être au repos, en état normal ou aux aguets (REST, STAY, WATCH).

Lorsqu’il est en état normal, le joueur peut avancer sa main vers le capteur. S’il avance trop vite, le lapin se méfie et passe en mode surveillance. Si le joueur continue à aller trop vite, la partie est perdue et le lapin s’enfuit.

À l’inverse, si le joueur avance trop lentement, le lapin devient inattentif, ce qui permet d’accélérer légèrement. Cependant, des mouvements trop brusques le réveillent immédiatement et provoquent sa fuite.

Travaux et Développement

Le premier problème et le plus important était la précision du capteur télémétrique. On pouvait arranger avec des moyennages des mesures reçues par la fonction getDistance() provenant de la librairie du capteur. De plus, on arrondissait le résultat à la dizaine sachant que les valeurs changeaient énormément par rapport aux tremblements de la main mais aussi à l’environnement qui pouvait être trop lumineux. Le seconde défaut était la vitesse d’affichage de l’image qui pouvait porter à confusion le joueur, s’il faisait changer l’état du lapin trop rapidement. Au début, mon binôme et moi avions fait l’erreur de réafficher toute l’image à chaque changement d’état, et étant donné qu’on affichait les pixels un par un et malgré la vitesse de traitement de la carte Arduino, l’image prenait trop de temps à changer. Pour pallier à cela, on a affiché le fond qu’au début du jeu, mais le lapin qu’on avait rendu d’une forme carrée, rentrait dans une zone qui était actualisé selon l’état.

Erreurs et Amélioration

Le premier problème, et le plus important, concernait la précision du capteur télémétrique. Nous avons corrigé cela en effectuant un moyennage des mesures renvoyées par la fonction getDistance() provenant de la bibliothèque du capteur. De plus, nous avons arrondi les valeurs à la dizaine, car celles-ci variaient fortement à cause des tremblements de la main et de la luminosité de l’environnement.

Le second défaut concernait la vitesse d’affichage de l’image, qui pouvait perturber le joueur lorsque l’état du lapin changeait trop rapidement. Au départ, mon binôme et moi réaffichions l’image complète à chaque changement d’état. Or, comme les pixels étaient affichés un par un, malgré la vitesse de traitement de la carte Arduino, le rafraîchissement était trop lent.

Pour résoudre ce problème, nous avons affiché le fond une seule fois au début du jeu. Le lapin, que nous avons simplifié en une forme carrée, était ensuite affiché dans une zone spécifique actualisée dynamiquement selon son état.