HariFun #136 - hur man skriver ett spel (7 / 8 steg)
Steg 7: Scoring & Court
Tyvärr finns det inga drawChar(), så vi måste använda Rita sträng.
Det finns många sätt att konvertera ett tal till en rad tecken, men eftersom jag bara behöver ensiffriga 0 till 9, bestämde jag mig det enklaste sättet skulle vara att reservera en två karaktär array (siffran ASCII-representation samt avslutande null).
Låt oss använda ett mindre teckensnitt. Åh, kolla in antalet stöds teckensnitt! https://github.com/olikraus/u8glib/wiki/FontSize
void DrawScores() {
char strScore0 [] = "?"; Uppsättningar sträng längd 1
char strScore1 [] = "?";
strScore0 [0] = "0" + score0; Overide strängvärdet med ensiffriga poäng
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);
}
Och för att avsluta det, låt oss dra tennisbanan. Det består av två horisontella linjer (en högst upp på skärmen, den andra i botten av skärmen) och en vertikal streckad linje i mitten av skärmen.
void DrawCourt()
{
U8G.drawHLine (0, 0, courtWidth);
U8G.drawHLine (0, courtHeight - 1, courtWidth);
byte streck = 3;
för (byte y = 0; y < (courtHeight / dash / 2); y ++)
{
U8G.drawVLine (halfCourtWidth - 1, 2 + y * dash * 2, dash);
}
}