mandag den 19. april 2010

Klassediagram

Vi har påbegyndt vores første iteration som beskrevet under Genesis. Vi har efter overvejelser med kun en level- og en player-klasse fundet frem til, at det bedre kan betale sig at holde styresystemet i sin egen klasse, navnlig Controller jf. princippet om lav kobling. Dette kommer sig af inspiration fra et tidligere projekt, Astroids, hvor opbygningen er den samme. Det giver endvidere logisk mening at holde controller for sig selv, da dette giver lettere mulighed for at ændre de forskellige klasser uafhængigt af hinanden. Derudover er det lettere at implementere styresystemer i senere projekter, da vi på denne måde får en skabelon for dette.























I vores klassediagram har vi indsat en Level-klasse. Under level-klassen har vi indsat variablen +ZombieAmount:Number. Det er meningen et denne variabel skal bestemme hvor mange zombier der er i banen, og dermed ligeledes at der kommer flere zombier jo højere level spilleren er i. Ydermere er ideen at vores level-klasse skal genere tilfældige baner i spillet hver gang der skiftes level. Dette har vi implementeret i vores klassediagram under disse variabler:

public var xLevelArray:Array;
public var yLevelArray:Array;
public var widthLevelArray:Array;
public var heightLevelArray:Array

Ideen med dette er at vi vil oprette 4 arrays der hver især indeholder et parameter for drawrect funktionen. Level-klassen henter så nogle tilfældige værdier fra hvert array, og drawmap tegner så ti tilfældige kasser derudfra, som så udgør banen.

Anden klasse i vores klassediagram er vores Player-klasse, herunder har vi valgt at indsætte følgende variabler:

-xCoordinate:Number

-yCoordinate:Number

+LifeCount:Number
+Name:string
+PlayerDeath()

Og disse funktioner:
+Move()
+Shoot()

Vi forestiller os herudfra at playerklassen skal indeholde styrefunktioner, i forhold til at playeren skal kunne bevæge sig, samt skyde(+Move() og +Shoot()). Derudover indeholder playeren også en LifeCount funktion(+LifeCount:Number), som holder styr på hvor mange liv playeren har tilbage, hertil forestiller vi os også funktionen PlayerDeath( +PlayerDeath()) der skal sørge for at playeren dør når han ikke har flere liv tilbage. Name funktionen(+Name:string) tænker vi skal gøre det muligt at brugeren kan give sin player et navn.

Den sidste klasse i vores klassediagram er Controller-klassen, der består af disse variabler og funktioner:
-_forward:Boolean
-_back:Boolean
-_left:Boolean
-_right:Boolean

+keyReleased()
+keyPressed()
+enterFrame()

Denne klasse er bygget op ud fra det princip at der er nogle Booleans, som bliver sat til true når der trykkes på en knap og så længe denne knap holdes inde. enterFrame() tjekker hele tiden om der trykkes på noget. Dette administreres af funktionerne keyPressed() og keyReleased(), der sørger for de rigtige værdier på vores booleans og dermed sikrer den rigtige bevægelse.

Sammenhængen mellem klasserne er som angivet på klassediagrammet. Controller-klassen står for at fortælle Player-klassen hvilke x- og y-koordinater spilleren skal have i hvert frame.

Level sørger for at få Player ind på scenen.

Ingen kommentarer:

Send en kommentar