Stap 5: Animatie sneeuwvlokken
bouwstenen van de code:
een matrix met 32 bytes, maken
het maken van een vlok van 4 bytes
schoonmaken van de 32 matrix
het maken van een lus van vallen
de Vlok invoegen in de 32 matrix
sloop van deze 32 array voor de 4 speciale karakters
de tekens schrijven op het scherm
het echt valt naar beneden!
void setCursorFor16_4(int j, int i){ if ( (j>-1)&&(j<4)&&(i>-1)&&(i<16)){ int hpx = 0; int hpy = 0; if ( j == 1 || j == 3) hpx = 1; if ( j > 1 ) hpy = 16; lcd.setCursor(i+hpy, hpx); } }
Alleen de functie van SetCursor specifiek voor deze 16 x 4 is LCD: (kan worden gewijzigd voor andere schermen)
//using the trick of rotating the chars to get another position<br> setCursorFor16_4(i-1, 0) ; lcd.write(i); setCursorFor16_4((i-1 +4 -3 )%4, 3) ; lcd.write(i); setCursorFor16_4((i-1 +4 +2 )%4, 5) ; lcd.write(i); setCursorFor16_4((i-1 +4 +1 )%4, 7) ; lcd.write(i); setCursorFor16_4((i-1 +4 -1 )%4, 8) ; lcd.write(i); setCursorFor16_4((i-1 +4 -4 )%4, 12) ; lcd.write(i);
Als u meer schilfers wilt, kopieer gewoon de
op andere locaties.
Ik ben met behulp van de modulo om zeker te zijn dat het zal eindigen in positie 0,1,2,3. De + 4 is ervoor zorgen dat het resultaat positief is.
De Vlok wordt ingevoegd vanaf de bovenkant, zodat voor de vlokken met een andere positie, hierdoor een kleine sprong in de animatie ontstaat.