Ik ben momenteel aan een klein game aan het werken dat we in opdracht van de universiteit moeten maken.
De opdracht bestaat eruit een doolhof te maken waarin de speler vrij kan bewegen. In de doolhof bevinden zich een aantal objecten zoals deuren, sleutels, powerups etc. Deze objecten zijn allen - indirecte - afstammelingen van de superklasse Vakje. Verder heb ik een klasse Speler en Doolhof.
De klasse Doolhof heeft een Speler (has-a) en een 2 dimensionale array van Vakjes (has-a). Om een speler op een deur te laten staan, heeft de speler de desbetreffende sleutel nodig. Hier wringt het schoentje.
Ik gebruik in de Deur-objecten (3 soorten deuren: rood, blauw, groen) een statische aanroep naar de hasKey() methode van de Doolhof. Dit omdat de Doolhof notie heeft van de 'inventory' van de speler (De inventory wordt voorgesteld door een aantal Opslag vakjes die willekeurig op het bord staan. Er is dus meer sprake van een doolhofgebonden inventory dan een spelergebonden inventory.)
Dit wordt echter afgeraden door de assistenten. Deze willen dat ik de hele doolhof als parameter doorgeef aan de verschillende Deur-instanties.
Persoonlijk vind ik dit een heel vreemde benadering. Je geeft een subklasse van een has-a relatie de volledige controle over het object waarmee je aan het spelen bent. Het zou dus perfect mogelijk zijn om plotseling die ene Deur alle bewegingen af te laten handelen.
Mijn vraag is dan ook bij deze:
"is dit nu eerder een normale oplossing en wordt het wel vaker gedaan dat een volledig autonoom object wordt meegegeven als parameter bij een has-a relatie of is dit eerder
?"
Kleine klassen schets:
Doolhof
- heeft Speler
- heeft Vakje[][]
Vakje
> subklasse Hindernis
--> subklasse Muur
--> subklasse Opslag
--> subklasse Deur
----> subklasse GroeneDeur <--- hier de volledige doolhof meegeven als argument
[...]
Eventuele opmerkingen over klassenstructuur en dergelijke zijn niet echt aan de orde, daar hier pas tijdens het tweede semester uitgebreid word op ingegaan.
De opdracht bestaat eruit een doolhof te maken waarin de speler vrij kan bewegen. In de doolhof bevinden zich een aantal objecten zoals deuren, sleutels, powerups etc. Deze objecten zijn allen - indirecte - afstammelingen van de superklasse Vakje. Verder heb ik een klasse Speler en Doolhof.
De klasse Doolhof heeft een Speler (has-a) en een 2 dimensionale array van Vakjes (has-a). Om een speler op een deur te laten staan, heeft de speler de desbetreffende sleutel nodig. Hier wringt het schoentje.
Ik gebruik in de Deur-objecten (3 soorten deuren: rood, blauw, groen) een statische aanroep naar de hasKey() methode van de Doolhof. Dit omdat de Doolhof notie heeft van de 'inventory' van de speler (De inventory wordt voorgesteld door een aantal Opslag vakjes die willekeurig op het bord staan. Er is dus meer sprake van een doolhofgebonden inventory dan een spelergebonden inventory.)
Dit wordt echter afgeraden door de assistenten. Deze willen dat ik de hele doolhof als parameter doorgeef aan de verschillende Deur-instanties.
Persoonlijk vind ik dit een heel vreemde benadering. Je geeft een subklasse van een has-a relatie de volledige controle over het object waarmee je aan het spelen bent. Het zou dus perfect mogelijk zijn om plotseling die ene Deur alle bewegingen af te laten handelen.
Mijn vraag is dan ook bij deze:
"is dit nu eerder een normale oplossing en wordt het wel vaker gedaan dat een volledig autonoom object wordt meegegeven als parameter bij een has-a relatie of is dit eerder
Kleine klassen schets:
Doolhof
- heeft Speler
- heeft Vakje[][]
Vakje
> subklasse Hindernis
--> subklasse Muur
--> subklasse Opslag
--> subklasse Deur
----> subklasse GroeneDeur <--- hier de volledige doolhof meegeven als argument
[...]
Eventuele opmerkingen over klassenstructuur en dergelijke zijn niet echt aan de orde, daar hier pas tijdens het tweede semester uitgebreid word op ingegaan.
[ Voor 3% gewijzigd door Nick The Heazk op 05-12-2005 19:39 ]
Performance is a residue of good design.