Toon posts:

[c++] klasseindeling probleempje

Pagina: 1
Acties:

Verwijderd

Topicstarter
hallo waarde medenerds!

ik ben een spelletje aan het maken, en de indeling zit nu zo:

class spel
class c_landschap
class c_scenery
..etc

in spel::spel doe ik:
landschap = new c_landschap
scenery = new c_scenery
etc.

probleem is dat alle 3 de classes met een server moeten praten. maar dat moet natuurlijk wel door 1 en dezelfde socket. hoe zorg ik nu dat alle 3 classes dezeldfe serverclass/functies/socket kunnen gebruiken?

  • Cloud
  • Registratie: November 2001
  • Laatst online: 18-02 09:57

Cloud

FP ProMod

Ex-moderatie mobster

Er komt toch zeker wel een class bij waar alles in samen komt? Bijvoorbeeld de userinterface? Daar wordt het spel gemaakt, met bijbehorende landschap en scenery (wat is het verschil trouwens? :P ). Daar kun je dan ook een connectie maken, die je in de andere classes meegeeft bij constructie bijvoorbeeld.
[/korte oplossing]

[ Voor 4% gewijzigd door Cloud op 20-06-2006 15:46 . Reden: het kan natuurlijk mooier he ;) ]

Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Een aparte class maken voor de communicatie? In een goed ontwerp komt geen servercommunicatie voor in een klasse die in principe alleen maar gedrag van objecten in de werkelijke speelwereld modelleert? :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Uit de losse pols:

Mogelijkheid 1: Maak een factory aan die altijd 1 en hetzelfde object van het type Server teruggeeft. Roep deze factory aan in je overige classes.
Mogelijkheid 2: Maak een Server property bij al je classes aan en laat die setten door je programma.

Verwijderd

Topicstarter
@nme:

landschap = heightmap
scenery = boompjes etc :)

maar ik kan dus het best in class spel de connectie maken, en de socket meegeven met landscape = new c_landschap(socket) ?
t klinkt wel logisch idd :P (ben nog beetje n00b)

@bigbeng:

hoe roep ik zo'n factory (is dat een class?) aan vanuit elke class? dan moet ik toch eerst een nieuw object van dat type maken in elke class, maar dan zou hij toch telkens een nieuwe socket moeten openen?

[ Voor 35% gewijzigd door Verwijderd op 20-06-2006 15:49 ]


  • mrFoce
  • Registratie: Augustus 2004
  • Laatst online: 19:07
Maak een connectieclass. Maak die class een singleton O-) en bij het aanmaken van andere classes kan je een reference (of pointer, ben slecht in t noemen van die benamingen) naar die connectieclass maken (ben geen pro maar bij werkt het zo).

  • Cloud
  • Registratie: November 2001
  • Laatst online: 18-02 09:57

Cloud

FP ProMod

Ex-moderatie mobster

Zoals al voorgesteld is een van de makkelijkere oplossingen een Connection class te maken, die je meegeeft aan je andere classes. En als je het netjes wilt doen, doe je het op de Singleton pattern manier, maar daarvoor heb je wat meer kennis van zaken nodig denk ik ;) Ookal is het niet zo moeilijk.

Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana


Verwijderd

Topicstarter
-NMe- schreef op dinsdag 20 juni 2006 @ 15:46:
Een aparte class maken voor de communicatie? In een goed ontwerp komt geen servercommunicatie voor in een klasse die in principe alleen maar gedrag van objecten in de werkelijke speelwereld modelleert? :)
hm maar dit dan; in de landschap class moet hij toch de heightmap opvragen van de server?

ik zal iig ff gaan kijken wat het singleton gebeuren inhoudt, tnx :)

[ Voor 9% gewijzigd door Verwijderd op 20-06-2006 15:50 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Verwijderd schreef op dinsdag 20 juni 2006 @ 15:50:
hm maar dit dan; in de landschap class moet hij toch de heightmap opvragen van de server?
Moet de landschapsklasse dat zelf regelen, of een globale controlklasse die alle landschappen aanmaakt? Ik zou voor het laatste gaan. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Verwijderd schreef op dinsdag 20 juni 2006 @ 15:47:
...
@bigbeng:

hoe roep ik zo'n factory (is dat een class?) aan vanuit elke class? dan moet ik toch eerst een nieuw object van dat type maken in elke class, maar dan zou hij toch telkens een nieuwe socket moeten openen?
Een factory volgt (over het algemeen) het Singleton pattern, dus je bent al op de goede weg ;)

edit:
ter verduidelijking, de factory class is een singleton, datgene wat ie aanmaakt hoeft dat natuurlijk niet perse te zijn.

[ Voor 18% gewijzigd door bigbeng op 20-06-2006 15:56 ]

Pagina: 1