Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OOP technieken #3

Open
Eviltoastey opened this issue Aug 22, 2018 · 0 comments
Open

OOP technieken #3

Eviltoastey opened this issue Aug 22, 2018 · 0 comments

Comments

@Eviltoastey
Copy link

Misschien een beetje laat maar ik moet nog een peer review doen voor mijn herkansing. Het meeste is al gefixt de code zag er namelijk goed gestructureerd en duidelijk uit. Toch zal ik wat feedback achter laten ookal is deze grotendeels positief.

Strategy pattern
Ook dit ziet er gewoon netjes uit. Je wisselt van shooting behaviours als er een upgrade wordt opgepakt. De default shooting behaviour is de single shot waar de speler altijd mee begint.

Polymorfisme
De classes asteroid.ts, bullet.ts, bomb.ts, asteroidParts.ts en ship.ts extenden allemaal van gameobject.ts wat ze allemaal een GameObject maakt. Door het gebruik van instanceof is het mogelijk om door alle GameObjects heen te lopen, zo kan er makkelijk op collision gecontroleerd worden.

Alle onderdelen die getekend moeten worden zijn gameobjects. Hierdoor is het makkelijk om polymorphisme te gebruiken bij het checken van wat voor type het object is. Ik heb polymorphisme zelf ook op deze manier toegevoegd in de collision checker.

Omdat deze structuur zo duidelijk was heb ik zelf een fastshoot behaviour gemaakt. Ik maak mijn strategy pattern ook altijd zoals jij dit doet dus ik heb hier verder geen commentaar op.

Singleton
De meeste mensen hebben een singleton op de game manager omdat hier altijd maar 1 van gemaakt wordt. Het werkt en het klopt maar je zou bijvoorbeeld ook andere managers kunnen maken.

Observer pattern
netjes de asteroids laten registeren en unregisteren als ze kapot geschoten zijn.

conclusie
Zoals ik boven al heb geschreven, de code ziet er netjes en duidelijk uit. Het was voor mij erg makkelijk om er veranderingen in te maken. Voor zover mijn kennis gaat kloppen alle patterns ook en zijn ze goed geïmplementeerd. Je zou de game wel iets uitgebreider kunnen maken met extra upgrades en verschillende soorten asteroids die ook hun eigen behaviour hebben.

Een leuke toevoegen zou een random asteroid factory kunnen zijn.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant