| Tutorials.zip » |
Eigenlijk is de benaming voor deze tutorial een beetje fout en gaat het meer over GameServices maar dat is een goede manier om meer uit je GameComponents te halen.
Net zoals de vorige keer gaan we verder met de code waar we de in de vorige tutorial mee zijn gestopt.
...
We beginnen met het aanmaken van een nieuwe folder in ons project genaamd: Interfaces.
En in deze folder maken we i.p.v. een class deze keer een interface aan genaamd: IFPSCounter.
Mer hierin de volgende code:
Je ziet dat hier in de interface alle publiek toegankelijke properties staan gedefineerd die ook in de FPSCounter class zitten.
Het eerstvolgende wat we dan ook doen is ervoor zorgen dat de FPSCounter class deze interface erft.
Dan rest ons nog de Game class aan te passen.
Als eerste Halen we de variabele definitie FPS weg en passen de constructor aan zodat we geen referentie meer hebben in onze class nadat de constructor is uitgevoerd.
Zoals je ziet voegen we nu de FPS class ook toe aan de Services list van de Game en vertellen de Game a.d.h.v. typeof(IFPSCounter) wat voor iets het is.
Om te laten zien hoe je nu die service weer kunt aanspreken(in dit geval dus onze FPSCounter) pas je de Draw method in onze Game class op de volgende manier aan:
Het enigste nieuwe hier voor je zou moeten zijn:
FPSCounter test = (FPSCounter)this.Services.GetService(typeof(IFPSCounter));
Dit is dus hoe we de FPSCounter ophalen uit de Services list en weer na hartelust kunnen gebruiken.
Het resultaat ziet er dan als volgt uit: