Stap 7: Scoren & Hof
Helaas is er geen drawChar(), dus we moeten trekken tekenreeks gebruiken.
Er zijn vele manieren om een getal converteren naar een array van karakters, maar aangezien ik hoef maar één cijfer 0 t/m 9, heb ik besloten dat de eenvoudigste manier zou zijn om te reserveren een twee karakter array (van het cijfer ASCII-weergave plus afsluitende null).
Laten we een kleiner lettertype gebruiken. Oh, Bekijk het aantal ondersteunde lettertypen! https://github.com/olikraus/u8glib/wiki/FontSize
void DrawScores(){ char strScore0[] = "?"; // Sets string length to 1 char strScore1[] = "?"; strScore0[0] = '0' + score0; // Overide the string value with single digit score strScore1[0] = '0' + score1; u8g.setFont(u8g_font_04b_03b); u8g_uint_t scoreWidth = u8g.getStrPixelWidth(strScore0); const int offset = 5; u8g_uint_t scoreY = 9; u8g.drawStr( halfCourtWidth - offset - scoreWidth, scoreY, strScore0); u8g.drawStr( halfCourtWidth + offset, scoreY, strScore1); }
En tot slot het, laten we trekken de tennisbaan. Het samengesteld uit twee horizontale lijnen (een zeer boven aan het scherm, de andere aan de onderkant van het scherm) en een verticale onderbroken lijn in het midden van het scherm.
void DrawCourt() { u8g.drawHLine(0, 0, courtWidth); u8g.drawHLine(0, courtHeight - 1, courtWidth); byte dash = 3; for (byte y = 0; y < (courtHeight / dash / 2); y++) { u8g.drawVLine(halfCourtWidth - 1, 2 + y * dash * 2, dash); } }