Étape 3: Si des déclarations
Maintenant que nous avons nos animations et bibliothèques mis en place, nous devons renforcer notre boucle principale. Nous avons fondamentalement deux conditions. Si vous appuyez sur le bouton Démarrer, jouer une animation et envoyez un message infrarouge à un autre joueur. Dans le cas contraire, si le joueur reçoit un message d’infrarouge, nous devrions jouer l’animation de la réception.
Pour détecter si le bouton de démarrage a été enfoncé, nous utilisons la fonction isPressed().
Pour vérifier si nous avons reçu quoi que ce soit, nous utilisons la fonction infrared.receive(). Nous sommes recherchant « h » parce que c’est le message que nous allons l’envoyer. Vous pouvez envoyer à peu près n’importe quelle lettre unique. Nous avons choisi « h », qui signifie « élevé ».
Voici à quoi devrait ressembler notre code.
#include <Gamer.h> #include <GamerIR.h> #include <SoftwareSerial.h> #define NUMFRAMESSENDANIMATION 12 byte sendAnimation[NUMFRAMESSENDANIMATION][8] = { {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B11111111}, {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B11111111, B01111110}, {B00000000, B00000000, B00000000, B00000000, B00000000, B11111111, B01111110, B00111100}, {B00000000, B00000000, B00000000, B00000000, B11111111, B01111110, B00111100, B00011000}, {B00000000, B00000000, B00000000, B11111111, B01111110, B00111100, B00011000, B00000000}, {B00000000, B00000000, B11111111, B01111110, B00111100, B00011000, B00000000, B00000000}, {B00000000, B11111111, B01111110, B00111100, B00011000, B00000000, B00000000, B00000000}, {B11111111, B01111110, B00111100, B00011000, B00000000, B00000000, B00000000, B00000000}, {B01111110, B00111100, B00011000, B00000000, B00000000, B00000000, B00000000, B00000000}, {B00111100, B00011000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000}, {B00011000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000}, {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000}}; #define NUMFRAMESRECEIVEANIMATION 12 byte receiveAnimation[NUMFRAMESRECEIVEANIMATION][8] = { {B11111111, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000}, {B01111110, B11111111, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000}, {B00111100, B01111110, B11111111, B00000000, B00000000, B00000000, B00000000, B00000000}, {B00011000, B00111100, B01111110, B11111111, B00000000, B00000000, B00000000, B00000000}, {B00000000, B00011000, B00111100, B01111110, B11111111, B00000000, B00000000, B00000000}, {B00000000, B00000000, B00011000, B00111100, B01111110, B11111111, B00000000, B00000000}, {B00000000, B00000000, B00000000, B00011000, B00111100, B01111110, B11111111, B00000000}, {B00000000, B00000000, B00000000, B00000000, B00011000, B00111100, B01111110, B11111111}, {B00000000, B00000000, B00000000, B00000000, B00000000, B00011000, B00111100, B01111110}, {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00011000, B00111100}, {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00011000}, {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000}}; Gamer gamer; GamerIR infrared; void setup() { gamer.begin(); } void loop() { if(gamer.isPressed(START)) { } if(infrared.receive() == "h") { } }