Pong på XGS bild (18 / 36 steg)
Steg 18: Bollen Demo - dra bollen
Med en sida längd definierats korrekt, är nästa steg att kod exakt hur bollen ska dras. Detta leder till en liknande fråga med lagring av s: där bör här koden skrivas? Att ha spelet slingan som stilren som möjligt är en enorm piggna till läsbarhet. En funktion med ett fint namn kommer att förbättra läsbarheten av spelet slingan, och, ytterligare nytta, om samma kod måste användas två gånger (och man), sedan ingen kopiering och inklistring krävs. Bör ha funktionen parametrar?Denna fråga är jämförbar med den första frågan: vad skulle göra funktionen den mest modulära? Bollen ändrar läge en gång per ram; därför den gamla koordinatparet som representerar platsen kan ha något att göra med den nuvarande (överväga när bollen har återställts på scoring villkoret). Därför har parametrar som accepterar heltal som representerar x- och y värdena på platsen skulle vara till stor nytta. Det finns en ytterligare sak som kunde läggas: ett färgindex. Att lägga till detta har sig lite värde vid denna punkt, som färg normalt ska index med NTSC_WHITE, men tweaking programmet att göra "dumma" saker när motorn är klar äter upp massor av tid med en vän. Rita en boll, det måste vara några begreppet side längden. Under programmet ändras den side längden aldrig, så definierar en konstant med namnet BALL att representera vissa heltal ger en uttrycklig side längden som kan användas medan du ritar bollen och för kollision upptäckt. Den slutliga funktionen bör se ut ungefär så här:
void drawBall (unsigned int x, unsigned int y, unsigned int colorIndex) {
int i, j.
för (jag = x; jag < x + boll; i ++)
för (j = y; j < y + boll; j ++)
GFX_Plot_2BPP (i, j, colorIndex, g_VRAMBuffer);
}