Étape 18 : Boule Demo - dessin de la boule
Avec une longueur de côté définie correctement, l’étape suivante consiste à coder exactement comment la balle doit être dessinée. Cela conduit à une question similaire avec le stockage de s: où ce code doit être écrit ? Avoir la boucle de jeu comme épurée que possible est un avantage énorme à la lisibilité. Une fonction avec un joli nom ne permettra d’améliorer la lisibilité de la boucle de jeu et, d’autre avantage, si le même code doit être utilisé deux fois (et ce sera), alors aucune copie et coller est requis. La fonction doit-elle paramètres ?Cette question est analogue à la première question : ce qui rendrait la fonction la plus modulaire ? La boule change de position une fois par image ; la vieille paire de coordonnées qui représente l’emplacement peut donc rien à voir avec l’actuel (envisager lorsque le ballon est remis à la condition de notation). Par conséquent, ayant des paramètres qui acceptent les entiers représentant le x et y les valeurs de l’emplacement serait d’une grande utilité. Il y a une autre chose qui pourrait être ajoutée : un index de couleur. Ajouter que ceci a intrinsèquement peu de valeur à ce stade, comme la couleur généralement ne sera que l’index avec NTSC_WHITE, mais peaufiner le programme pour faire des « bêtises » une fois le moteur complet mange beaucoup de temps avec un ami. Dessiner une balle, doit être une idée de la longueur du côté. Au cours du programme, la longueur de côté ne changera jamais, pour définir une constante avec nom BALL pour représenter une valeur de nombre entier donne une longueur de côté explicite qui peut être utilisée tout en tirant la boule et pour la détection de collision. La fonction finale devrait ressembler à ceci :
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); }