Paso 18: Bola Demo - dibujo de la bola
Con una longitud de lado definida correctamente, el siguiente paso es codificar exactamente cómo la bola debe ser dibujada. ¿Esto conduce a una pregunta similar con el almacenaje de s: donde se debe escribir este código? Con el bucle de juego como despejada como sea posible es una gran ventaja a la legibilidad. Una función con un bonito nombre no mejorará la legibilidad del bucle de juego y, de otra ventaja, si el mismo código debe ser utilizado dos veces (y será), entonces copiar y pegar se requiere. ¿Debe tener la función de los parámetros?Esta pregunta es análoga a la primera pregunta: ¿Qué haría la función más modular? La bola cambia de lugar una vez por marco; por lo tanto, el viejo par de coordenadas que representa la ubicación puede tener nada que ver con el actual (tener en cuenta cuando la bola se restablece la condición de la puntuación). Por lo tanto, tener parámetros que acepten números enteros que representan x e y valores de la localización sería de gran beneficio. Hay una cosa más que se podría añadir: un índice de color. Agregar que esto tiene intrínsecamente poco valor en este punto, como el color por lo general sólo será el índice con NTSC_WHITE, pero afinando el programa haga cosas "tontas", una vez que el motor se come mucho tiempo con un amigo. Para dibujar una bola, allí debe ser un concepto de la longitud lateral. Durante el transcurso del programa, la longitud del lado nunca cambiará, por lo que definir una constante con nombre de bola para representar algún valor entero da una longitud de lado explícito que puede ser utilizada mientras la bola y para la detección de colisión. La función final debería ser algo como esto:
void drawBall(unsigned int x, unsigned int y, unsigned int colorIndex) { int i, j; for (i = x; i < x+BALL; i++) for (j = y; j < y+BALL; j++) GFX_Plot_2BPP(i, j, colorIndex, g_VRAMBuffer); }