| | Les classes | |
| | Auteur | Message |
---|
countag
Nombre de messages : 57 Date d'inscription : 10/02/2006
![Les classes Empty](https://2img.net/i/empty.gif) | Sujet: Les classes Dim 19 Fév à 12:38 | |
| Bonjour,
voila j ai une petit question, pourquoi rentre des membres d une classe prive, pour creer une methode d acces qui va lire et changer ces valeur ? autant les rendre public direct non ? je comprend pas trop la :/ | |
| ![Aller en bas](https://2img.net/i/empty.gif) | | le_duche
![le_duche](https://2img.net/u/1612/42/45/74/avatars/5-56.jpg)
Nombre de messages : 60 Age : 39 Localisation : Bruxelles Date d'inscription : 07/12/2005
![Les classes Empty](https://2img.net/i/empty.gif) | Sujet: Re: Les classes Lun 20 Fév à 4:13 | |
| Comme ca l'utilisateur de ta classe ne peut pas modifier certaine valeurs autrement que par les fonctions que tu lui permet... Immagine que ton four à micro-onde n'aie pas tous ce boutons devant sa face, mais que tu doivents chaque fois connecter les fils entre eux... D'abord, c'est plus compliqué, et puis ca augmente les risques que ca ne marche plus... ![affraid](https://2img.net/i/fa/i/smiles/affraid.gif) | |
| ![Aller en bas](https://2img.net/i/empty.gif) | | FVIRTMAN Admin
![FVIRTMAN](https://2img.net/u/1612/42/45/74/avatars/1-95.jpg)
Nombre de messages : 78 Date d'inscription : 11/11/2005
![Les classes Empty](https://2img.net/i/empty.gif) | Sujet: Re: Les classes Lun 20 Fév à 14:41 | |
| Un bon exemple le micro ondes ![Smile](https://2img.net/i/fa/i/smiles/icon_smile.gif) Oui, c'est exactement ça : l'utilisateur de la classe n'a d'ailleurs meme pas a savoir ce qu'il y a en "private" | |
| ![Aller en bas](https://2img.net/i/empty.gif) | | countag
Nombre de messages : 57 Date d'inscription : 10/02/2006
![Les classes Empty](https://2img.net/i/empty.gif) | Sujet: Re: Les classes Mar 21 Fév à 12:40 | |
| J ai decider de faire des classes sur mon editeur pour mieux comprendre, je voudrais que vous critiquiez ce qui ne va pas et expliquez pourquoi si possible pour que je comprenne : MAIN.H - Code:
-
#ifndef MAP_H # define MAP_H
#include <sdl/sdl.h>
class Cchipset { public: void DefX(int x); void DefY(int y); int LitX(); int LitY(); private: int pos_x; int pos_y; };
class Cmap { public: SDL_Surface *s_chipset; Cchipset *c_chipset; void Map(int largeur, int longueur, char *chipset); void Map_Affiche(int Xoffset, int Yoffset); void DefX(int x); void DefY(int y); void DefLongueur(int DefLongueur); void DefLargeur(int DefLargeur); void DefOffsetX(int DefOffsetX); void DefOffsetY(int DefOffsetY); int LitX(); int LitY(); int LitLongueur(); int LitLargeur(); int LitOffsetX(); int LitOffsetY(); private: unsigned int longueur; unsigned int largeur; unsigned int offsetX; unsigned int offsetY; unsigned int pos_x; unsigned int pos_y; };
SDL_Rect Rect(int x,int y,int w,int h);
#endif
MAP.CPP - Code:
-
#include <iostream> #include <stdlib.h> #include "map.h" #define TILE_TAILLE 32
using namespace std;
void Cchipset::DefX(int x){ pos_x=x; } void Cchipset::DefY(int y){ pos_y=y; } int Cchipset::LitX(){ return pos_x; } int Cchipset::LitY(){ return pos_y; }
void Cmap::DefX(int x){ pos_x=x; } void Cmap::DefY(int y){ pos_y=y; } void Cmap::DefLongueur(int DefLongueur){ longueur=DefLongueur; } void Cmap::DefLargeur(int DefLargeur){ largeur=DefLargeur; } void Cmap::DefOffsetX(int DefOffsetX){ offsetX=DefOffsetX; } void Cmap::DefOffsetY(int DefOffsetY){ offsetY=DefOffsetY; } int Cmap::LitX(){ return pos_x; } int Cmap::LitY(){ return pos_y; } int Cmap::LitLongueur(){ return longueur; } int Cmap::LitLargeur(){ return largeur; } int Cmap::LitOffsetX(){ return offsetX; } int Cmap::LitOffsetY(){ return offsetY; } void Cmap::Map(int largeur, int longueur, char *chipset) { int i,j,x,y; s_chipset=SDL_LoadBMP(chipset); DefLongueur(longueur); DefLargeur(largeur);
x=y=0; //Pour mettre les chipsets dans un tableau.
for(i=0; i<s_chipset->h/TILE_TAILLE; i++){ c_chipset[i].DefY(y); for(j=0; j<s_chipset->w/TILE_TAILLE; j++){ c_chipset[i].DefX(x); x += TILE_TAILLE; } y += TILE_TAILLE; x = 0; } }
void Cmap::Map_Affiche(int Xoffset, int Yoffset) { SDL_Rect src=Rect(0,0,32,32); SDL_Rect dest=Rect(0,0,32,32); int y,x; int x1,y1;
DefOffsetX(Xoffset); DefOffsetY(Yoffset); x1 = LitOffsetX()+160; y1 = LitOffsetY(); for(y=0; y<LitLargeur(); y++){ for(x=0; x<LitLongueur(); x++){ dest=Rect(x*TILE_TAILLE+x1 , y*TILE_TAILLE+y1 , TILE_TAILLE, TILE_TAILLE); SDL_BlitSurface(s_chipset,&src,SDL_GetVideoSurface(),&dest); } } src=Rect(0,0,32,32); dest=Rect(0,0,32,32); for(y=0; y<(s_chipset->h/TILE_TAILLE); y++){ for(x=0; x<(s_chipset->w/TILE_TAILLE); x++){ src=Rect(x*TILE_TAILLE , y*TILE_TAILLE, TILE_TAILLE, TILE_TAILLE); dest=Rect(x*TILE_TAILLE , y*TILE_TAILLE, TILE_TAILLE, TILE_TAILLE); SDL_BlitSurface(s_chipset,&src,SDL_GetVideoSurface(),&dest); } } }
voila, on m as dit ca : - Citation :
- Par contre, tu devrais revoir certaines choses dans ton code. Le principe des classes, des fonctions membres, etc.
je suis d accord mais le probleme il explique pas, et les explications sur le web font 5pages pour rien dire et celle de 1pages ne sont pas vraiment explicite. si quelqu un d aimable voudrai bien m aider merci ![Smile](https://2img.net/i/fa/i/smiles/icon_smile.gif) | |
| ![Aller en bas](https://2img.net/i/empty.gif) | | countag
Nombre de messages : 57 Date d'inscription : 10/02/2006
![Les classes Empty](https://2img.net/i/empty.gif) | Sujet: Re: Les classes Mer 22 Fév à 11:26 | |
| TUER MOI MDR, allez je refais mon code, personne avait remarque que je croyais qu on pouvais pas acceder au membre prive meme dans la classe, quel boulet je fais, ca va reduire le code a fond, ca y est je commence a comprendre ![Smile](https://2img.net/i/fa/i/smiles/icon_smile.gif) | |
| ![Aller en bas](https://2img.net/i/empty.gif) | | countag
Nombre de messages : 57 Date d'inscription : 10/02/2006
![Les classes Empty](https://2img.net/i/empty.gif) | Sujet: Re: Les classes Mer 22 Fév à 12:46 | |
| MAP.H : - Code:
-
#ifndef MAP_H # define MAP_H
#include <sdl/sdl.h>
class Cmap { public: Cmap(); ~Cmap(); SDL_Surface *s_chipset; void Map(int,int,char *chipset); void Map_Affiche(int,int); private: int LoMap; int LaMap; int MoffsetX; int MoffsetY; int Mpos_x; int Mpos_y; int Cpos_x[50]; int Cpos_y[50]; };
SDL_Rect Rect(int x,int y,int w,int h);
#endif
MAP.CPP - Code:
-
#include <iostream> #include <stdlib.h> #include "map.h" #define TILE_TAILLE 32
using namespace std; Cmap::Cmap(){ LoMap=LaMap=MoffsetX=MoffsetY=Mpos_x=Mpos_y=0; } void Cmap::Map(int Largeur, int Longueur, char *chipset) { int i,j,x,y; s_chipset=SDL_LoadBMP(chipset); LoMap=Longueur; LaMap=Largeur; x=y=0; //Pour mettre les chipsets dans un tableau.
for(i=0; i<s_chipset->h/TILE_TAILLE; i++){ Cpos_y[i] = y; for(j=0; j<s_chipset->w/TILE_TAILLE; j++){ Cpos_x[j] = x; x += TILE_TAILLE; } y += TILE_TAILLE; x = 0; } }
void Cmap::Map_Affiche(int Xoffset, int Yoffset) { SDL_Rect src=Rect(Cpos_x[0],Cpos_y[0],32,32); SDL_Rect dest=Rect(0,0,32,32); int y,x,x1,y1=0; MoffsetX = Xoffset; MoffsetY = Yoffset; x1 = MoffsetX+160; y1 = MoffsetY; for(y=0; y<LaMap; y++){ for(x=0; x<LoMap; x++){ dest=Rect(x*TILE_TAILLE+x1 , y*TILE_TAILLE+y1 , TILE_TAILLE, TILE_TAILLE); SDL_BlitSurface(s_chipset,&src,SDL_GetVideoSurface(),&dest); } } src=Rect(0,0,32,32); dest=Rect(0,0,32,32); for(y=0; y<(s_chipset->h/TILE_TAILLE); y++){ for(x=0; x<(s_chipset->w/TILE_TAILLE); x++){ src=Rect(x*TILE_TAILLE , y*TILE_TAILLE, TILE_TAILLE, TILE_TAILLE); dest=Rect(x*TILE_TAILLE , y*TILE_TAILLE, TILE_TAILLE, TILE_TAILLE); SDL_BlitSurface(s_chipset,&src,SDL_GetVideoSurface(),&dest); } } }
//Destructeur du chipset et de map Cmap::~Cmap(){ SDL_FreeSurface(s_chipset); }
comment simplifiez ![Smile](https://2img.net/i/fa/i/smiles/icon_smile.gif) bon maintenant fo que je m occupe de la carte la partie la plus dur je pense avec les collisions | |
| ![Aller en bas](https://2img.net/i/empty.gif) | | Contenu sponsorisé
![Les classes Empty](https://2img.net/i/empty.gif) | Sujet: Re: Les classes ![Les classes Empty](https://2img.net/i/empty.gif) | |
| |
| ![Aller en bas](https://2img.net/i/empty.gif) | | | Les classes | |
|
Sujets similaires | ![+](https://2img.net/i/empty.gif) |
|
Sujets similaires | ![-](https://2img.net/i/empty.gif) |
| |
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |