|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Apr 2007
Messaggi: 263
|
[c++] Suddividere due classi su piú file
Salve a tutti!
Sto facendo un po'di tentativi con c++ e ho scritto le seguenti classi: Codice:
class cLevel { private: bool Data[5][5]; //Mappa delle collisioni class cPlayer //Classe Player { private: int x; //Posizione x del giocatore int y; //Posizione y del giocatore cLevel *Level; //Istanza di cLevel, dove poter accedere ai suoi metodi public: cPlayer(cLevel *_Level); //Costruttore della classe che richiede un puntatore a level void MoveRight(void); //Muove il player a destra se non ci sono collisioni, usando il metodo di cLevel per intercettare collisioni friend class cLevel; //Consente a cLevel di accedere alle proprietá x e y per poter disegnare il livello }; cPlayer *Player; //Istanza di cPlayer contenuta in cLevel public: cLevel(void); //Costruttore di clevel, dove viene inizializzato Data e Player bool Collide(int x,int y); //Ritorna true se la posizione (x|y) sulla mappa corissponde a collisione void UpdatePlayer(void); //Muove il player a destra void Draw(void); //Disegna il livello e il player sullo schermo }; |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
Codice:
class cPlayer //Classe Player { private: int x; //Posizione x del giocatore int y; //Posizione y del giocatore cLevel *Level; //Istanza di cLevel, dove poter accedere ai suoi metodi public: cPlayer(cLevel *_Level); //Costruttore della classe che richiede un puntatore a level void MoveRight(void); //Muove il player a destra se non ci sono collisioni, usando il metodo di cLevel per intercettare collisioni friend class cLevel; //Consente a cLevel di accedere alle proprietá x e y per poter disegnare il livello }; class cLevel { private: bool Data[5][5]; //Mappa delle collisioni cPlayer *Player; //Istanza di cPlayer contenuta in cLevel public: cLevel(void); //Costruttore di clevel, dove viene inizializzato Data e Player bool Collide(int x,int y); //Ritorna true se la posizione (x|y) sulla mappa corissponde a collisione void UpdatePlayer(void); //Muove il player a destra void Draw(void); //Disegna il livello e il player sullo schermo };
__________________
![]() |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Apr 2007
Messaggi: 263
|
Ma cosí non mi dá problemi a definire friend una classe non ancora definita?
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Perché usare friend ?!?!? Solo per poter cambiare x e y ? Non bastano due metodi per spostare x e y ?
|
![]() |
![]() |
![]() |
#5 | |
Member
Iscritto dal: Apr 2007
Messaggi: 263
|
Quote:
Invece se separo le due classi non riesco piú ad accedere a questo metodo EDIT: Grazie delle vostre risposte, comunque ho risolto con una dichiarazione anticipata! Ultima modifica di stdecden : 03-08-2007 alle 22:16. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:55.