8x8 LED Matrix Animations (11 / 14 steg)
Steg 11: Slumpa animeringen att spela
Förhoppningsvis du har nu skapat din egen animationer och har en hel del att köra. Detta ser fantastiskt när varje animation körs, men kan ganska tråkigt som det körs dem i samma ordning varje gång.Denna förändring kommer att köra dem i slumpmässig ordning.
i början av skiss under mängd stift måste vi lägga till en ny array definition
void (* funcAnimate[2])();
Detta sätter upp en pekare kallas funcAnimate. Utan att gå till dess faktiska funktionsdugliga detaljer i princip sätter upp en mängd funktioner som vi kan kalla i loop funktion. Vi kan kalla ett slumpmässigt vektorelement från denna matris och denna funktion kommer då att köras. Detta tillåter oss att köra 3 slumpmässiga animationer. Om du har mer sedan ändra 3 sedan numret i hakparentes. Kom ihåg att det måste vara en mindre då det totala antalet animationer. (På grund av matrisens börjar räkna på 0)
Sedan i setup är funktion vi måste definiera vilka animation kopplat till vilket funcAnimate arrayelement. Lägg till följande två rader och ändra animate1 och animate2 till namnen på dina animation funktioner
funcAnimate [0] = animate1;
funcAnimate [1] = animate2;
I funktionen loop måste vi ändra koden för att slumpmässigt ringa ett array-element från funcAnimate array.
void loop() {
int randnumber = 0;
randnumber = random(0,1);
för (int x = 0; x < 2; x ++) {
(*funcAnimate[randnumber]) ();
Delay(1);
}
}
I slingan väljs ett slumptal mellan 0 och 2 (0 eller 1). Sedan kommer att slingan kalla den animering som är i den positionen i matrisen. Om du har ändrar mer än 2 animeringar slumptal från 2 till antal effekter du har.
Koden nedan bör så långt ge dig en idé om hur du skapar animeringar och visa dem på LED matrix.