Portefølje opgave 3:

Spillet består udelukkende af GML scripting og understående er uddrag af den kode, som var krav til PF3. De fleste af disse uddrag indeholder flere af de specifikke krav på engang, men prøver så vidt muligt, at forklare dem enkeltvis.

 

Brugerinput med anvendelse og Array

Brugerinput

Til at håndtere brugerinput har jeg valgt, at benytte et 1D Array. Dette har jeg kaldt for Key_Array, hvor jeg laver to tjek på henholdsvis hver venstre og højre key samt en jump key. Den returneret værdi af disse tjek bliver derefter gemt i deres repræsentative index. Under arrayet viser jeg hvordan en mulig anvendelse kan forekomme. Her benytter jeg en if-else-if Conditional Statement til, at tjekke hvilken key der bliver holdt nede og ændre player spriten derefter. En mere uddybet forklaring på anvendelsen af brugerinputs kommer under if-else-if Conditional Statements, hvor jeg viser eliminering af ejendommen af en key. (Dette stykke kode kører under et step-event i player objektet.)

 

Display af tekst og grafik

Display af grafikTil display af tekst og grafik har jeg lavet et separat objekt, som håndterer alt hvad der vises på skærmen af UI, point, hjælp, og andre information. Her er der generelt gjort brugt af draw_sprite og draw_text funktionerne. Alle sprites og tekst bliver tegnet med en x (view_xview) og y (view_yview) position. Dette er for altid, at holde tekst og grafik i playerens view og ikke rummet, altså følger det hele med playeren. På samme måde følger baggrunden og med playerens view. Til sidst bliver der lavet et tjek om, hvorvidt alle stjerner et blevet samlet. Hvis dette er sandt, så bliver teksten “Level complete” tegnet. (Dette stykke kode kører under et draw-event i et global objekt.)

 

Conditional Statements

IfEt godt eksempel til, at vises anvendelse af Conditional Statements er måde hvorpå jeg eliminere ejendomme på en retningsbestemt key. Normalt hvis man holder en key nede der bestemmer en retning, så skal man slippe den igen før en ny retning kan træde i kraft. Så ved at eliminere ejendomme på disse, kan man altså bevæge sig alle retninger uanset hvor mange keys man holde nede.  I eksemplet bliver der lavet tjek på hvor og hvordan højre/venstre key er i forhold til hinanden. Dette er også grunden til, at der er to værdier for hver key til, at holde styr på hvornår en key er released. Variablen player_direction bliver så senere end brugt til dele af bevægelsen til playeren. (Dette stykke kode kører under et step-event i player objektet.)

 

Iteration Statements

forSer ikke pt noget praktik behov for en Iteration Statements i mit spil, som ville give mening at implementerer. Derfor har jeg skrevet et stykke kode, som giver et indblik i anvendelse af en for løkke og som kunne blive implementeret. Her ses et 2d array, som indeholder alle positioner x, y af stjerner i en bane. Ved brug af to for løkker kan man hive alle værdierne ud en efter en og ved hjælp af instance_create(x , y, obj), spawne alle stjernerne på deres repræsentative positioner. Dette fungere ved først, at iterere over det første index i arrayet “i” og derefter det andet index “j” indtil alle operationer er gentaget. (Dette stykke kode kan kører under et create-event i et spawn objekt.)

 

Download Version 2.1 (.exe)

Download Version 2.1 (.gm81)

 

Leave a Reply