Pong på XGS bild (3 / 36 steg)
Steg 3: Spel konstruktioner - grafikmotor
Mitt mål är att inte bara visa hur man skriver Pong på XGS PIC, men tankeprocessen bakom själva byggandet. De kommande stegen finns förklaringar på de olika element som gör ett spel och kan enkelt appliceras till andra spel. Om du chomping på lite att se lite kod, hoppa över steg med titeln spelet konstruerar och programstruktur.En grundläggande version av Pong kommer att ha några grafiska objekt på skärmen. Grafik motor drar, åtminstone tre objekt, i två färger: två paddlar och en enda boll. Rita objekt är en fråga om plotting pixlar på skärmen. Geometriskt, kan grafikmotorn Rita tre rektanglar på skärmen uppfyller dessa minimikrav. Modifiera programmet Rita bollen som en cirkel snarare än en kvadrat är kvar som en övning. Valet av färger för bakgrund och de grafiska objekt är oviktigt så länge bakgrunden och objekten är olika, kontrasterande färger. Förutsatt att drivrutinerna kan bara rita pixlar, är det enklaste sättet att göra en rektangel att använda loopar medan iteration över området i önskad rektangeln. Plottning varje pixel i rad tills antalet kolumner nås sedan flytta till nästa rad är sannolikt det mest intuitiva sättet att rita en rektangel fyllas i. När du väljer längder och bredder för bollen och paddlar, skulle god programmering praxis föreslå att använda konstanter. Samtidigt finjustera utseendet, ändra värdena endast en gång är mycket bättre att behöva jaga överallt i programmet där dessa värden används.
Den uppenbara brute-force metoden till uppfriskande skärmen fungerar på moderna datorer ganska fint utan något flimmer. När börjar, detta tillvägagångssätt kommer att användas för enkelhet och sedan sätt kommer att diskuteras för att förbättra metoden för att uppnå snabbare resultat. När du uppdaterar skärmen, den allmänna algoritmen kommer att ange varje pixel till bakgrundsfärgen och sen dra objekten i sina respektive platser med en annan färg på toppen av den nyligen återställda bakgrund. I avsnittet optimering visas det att denna algoritm är inte det bästa sättet att göra saker, men tolererar ineffektivitet för nu kommer att resultera i en enklare förståelse för hur spelet som helhet fungerar.
Placering av objekt på skärmen kommer att kräva vissa anpassade terminologi och bilder att beskriva effektivt. Den här implementeringen av Pong kommer att vara trogen till några av de tidigaste inkarnationer när det gäller placeringen av paddlarna. Paddlarna kommer gå vertikalt på en fast punkt på skärmen i stället för att flytta sidled vid en fast vertikal. Det faktiska beslutet är ganska godtyckligt, båda versionerna kommer att arbeta i mycket liknande mode, men detta kommer att påverka vissa spelet logik senare. Skärmen på play kommer att hänvisa till den lokala delen av skärmen där alla åtgärder sker. Gropen är läget mellan den vänstra eller högra kanten av skärmen av lek och fast x-koordinaten där paddeln flyttas uppåt eller nedåt. Paddel höjd och paddla bredd är självförklarande, men med denna implementation, paddel höjd bör vara större än paddel bredd.
För att beskriva platsen för de spelet objekt inom skärmen av lek, behöver programmet inte veta var varje pixel är i området av objektet. Plocka en godtycklig punkt gör att beräkningar för att få varje pixel i objektet. Det finns några självklara val för poängen, men med det övre vänstra hörnet kommer att konventionen används för detta program.