Stap 18: Bal Demo - opstelling van de bal
Met de lengte van een zijde adequaat gedefinieerd, is de volgende stap om te coderen precies hoe de bal moet worden getekend. Dit leidt tot een soortgelijke vraag met de opslag van s: waar deze code moet worden geschreven? Met de game lus als overzichtelijk mogelijk is een enorme extraatje aan leesbaarheid. Een functie met een aardige naam zal verbeteren de leesbaarheid van de spel lus, en, ander voordeel, als dezelfde code moet tweemaal worden gebruikt (en het zal zijn), dan geen kopiëren en plakken is vereist. Moet de functie parameters?Deze vraag is vergelijkbaar met de eerste vraag: wat zou het maken van de functie de meest modulaire? De bal wijzigt, locatie één keer per frame; Daarom kan de oude coördinaten de locatie hebben niets te maken met de huidige (overwegen wanneer de bal wordt opnieuw ingesteld op de scoren voorwaarde). Vandaar, hebben parameters die accepteren van gehele getallen die vertegenwoordigt de x- en y waarden van de locatie zou van groot nut zijn. Er is één meer ding dat kan worden toegevoegd: de kleurindex van een. Het toevoegen van dat dit is intrinsiek weinig waarde op dit punt, als de kleur meestal zal alleen de index met NTSC_WHITE, maar tweaken van het programma "dom" om dingen te doen zodra de motor compleet is eats opwaarts oodles van tijd met een vriend. Tekenen van een bal, er moet worden sommige notie van kant lengte. In de loop van het programma, zal de lengte van de zijde nooit veranderen, dus het definiëren van een constante met de naam BALL te vertegenwoordigen een integer-waarde een expliciete kant lengte die kan worden gebruikt geeft tijdens het tekenen van de bal en de botsingdetectie. De laatste functie moet als volgt uitzien:
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); }