Stap 11: Shuffle de animatie om te spelen
Hopelijk u hebt nu uw eigen animaties gemaakt en hebben een flink aantal uit te voeren. Dit ziet er fantastisch uit, wanneer elke animatie wordt uitgevoerd, maar kan heel saai als het loopt ze in de zelfde orde everytime.Deze wijziging zal ze in willekeurige volgorde uitvoeren.
aan het begin van de schets onder de array van pinnen moeten we een nieuwe definitie van de array toevoegen
nietig (* funcAnimate[2])();
Dit zet een pointer, genaamd funcAnimate. Zonder het gaan naar de eigenlijke werken details in principe ingesteld een scala aan functies die we in de lus functie kunt oproepen. We kunnen een willekeurige matrixelement noemen uit deze array en vervolgens die functie zal lopen. Daardoor kunnen we om uit te voeren 3 willekeurige animaties. Als u meer dan 3 Wijzig het getal in de vierkante haken. Vergeet niet dat het moet één minder dan het totale aantal animaties. (Als gevolg van de matrix te beginnen tellen bij 0)
In de setup functie die we nodig hebben om te definiëren welke animatie vervolgens gekoppeld aan welk element van de matrix funcAnimate. Voeg de volgende twee regels en animate1 en animate2 wijzigen in de werkelijke namen van de functies van uw animatie
funcAnimate [0] = animate1;
funcAnimate [1] = animate2;
We moeten dan in de lus functie wijzigen van de code om te bellen naar willekeurig een array-element uit de array funcAnimate.
void loop {}
int randnumber = 0;
randnumber = random(0,1);
voor (int x = 0; x < 2; x ++) {}
(*funcAnimate[randnumber]) ();
delay(1);
}
}
In de lus, wordt een willekeurig getal tussen 0 en 2 (0 of 1) geselecteerd. Dan zal de lus noemen de animatie dat in die positie in de matrix. Hebt u Wijzig meer dan 2 animaties de willekeurig getal van 2 in het aantal effecten hebt.
De onderstaande code moet tot nu toe geven u een idee van het maken van animaties en Toon hen op de LED-matrix.