IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

[RPG 2D en SDL] Map.


Sujet :

SDL

  1. #41
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    oui merci j'avais oublié de rajouter le n_annim
    sinon fwrite c'est du C,C'est bien ca ,
    en c++ j'ai entendu parler de stream, comment on l'utilise?

  2. #42
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par maxtor3569 Voir le message
    oui merci j'avais oublié de rajouter le n_annim
    sinon fwrite c'est du C,C'est bien ca ,
    en c++ j'ai entendu parler de stream, comment on l'utilise?
    Désolé, mais ce n'est pas une question C++, tu peux regarder http://cpp.developpez.com/faq/cpp/?page=fichiers ou demander dans le forum C++.

    http://www.developpez.net/forums/forumdisplay.php?f=19

    Jc

  3. #43
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    ca y est j'ai demandé pour le stream merci!

    mais je me retrouve avec un probleme dans ma fonction chargement puisque le programme plante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    void Map::chargementMap(char* nom_map)
    {
    int i,x,y;
    char buffer[256];
    ifstream fichier(nom_map);
    if (!fichier) cerr << "Impossible d'ouvrir la map  !" << endl;
    memset(&buffer,0,sizeof(buffer));
    /* BG SOUND */
    fichier >> buffer;
    this->bg_sound = FMUSIC_LoadSong(buffer);
    if(!this->bg_sound)
    cerr <<"Erreur lors du chargement de la carte: %s\n"<< endl;//C a trasformer
    /* CHIPSET */
    memset(&buffer,0,sizeof(buffer));
    fichier >> buffer;
    this->surf_chipset= SDL_LoadBMP(buffer);
    //couleur transparente
    SDL_SetColorKey(this->surf_chipset, SDL_SRCCOLORKEY, SDL_MapRGB(this->surf_chipset->format,8,33,82));
     
    //lecture chacun des membres
     
    fichier >> n_tile;
    fichier >> width;
    fichier >> height;
    fichier >> offsetX;
    fichier >> offsetY;
    //allocution memoire
    this->chipset = new s_chipset[n_tile];
     
    for(i=0;i<n_tile;i++)
    {
    fichier >> chipset[i].x;
    fichier >> chipset[i].y;
    fichier >> chipset[i].collision;
    fichier >> chipset[i].nextTile;
    }
    //alloue memoire pr data
    data = new unsigned int[width*height];
     
         for(x=0;x<this->width;x++)
            for(y=0;y<this->height;y++)
            {
               fichier >>GET_TILE(x,y,map);
               if(GET_TILE(x,y,map)>=this->n_tile)
               {
                  cerr << "Carte corrompue!"<<  endl;
                  cerr << x << endl;
                  cerr << y << endl;
                  GET_TILE(x,y,map)=0;
               }
            }
         fichier.close();
     
         FMUSIC_PlaySong(this->bg_sound);
    }

  4. #44
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    Salut,

    Il faut utiliser la méthode .read() des streams (pas l'opérateur >>, qui s'arrète au premier espace/ '\n')

    Aussi tu ne lis pas tout dans le même fichiers (enfin je pense pas), alors pourquoi en ouvre tu un seul?

  5. #45
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    merci pour la précision donc,opérateur s'arrête au premier espace..
    euh read() tu l'utilises bien comme ceci : il y a quelque chose à mettre en paramètre ?
    ou sinon , si, je lit tout dans le même fichier

  6. #46
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    http://www.cplusplus.com/reference/i...ream/read.html



    Ca prend ton buffer en premier paramètre, et le nombre d'octets en deuxième paramètre.

  7. #47
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    merci pour ton lien, il est top
    mais comment je fais pour savoir la mémoire exacte requise???

  8. #48
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    Salut,

    sur le lien que je t'ai donné il y a notamment des fonctions tellg et seekg, et des exemples dans les liens, qui permettent d'avoir la taille d'un fichier.

    Néanmoins ton buffer a une taille fixe de 256 octets, donc autant faire fichier.read(buffer, 256), je crois qu'il n'y a aucun problème si on spécifie une taille trop grande à la fonction read.

  9. #49
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    yep c'est bon le tuto indique la taille en octet
    mais une erreur que je n'arrive pas a comprendre puisque pour buffer aucun probleme par contre les variables posent problemes

    pour n_tile , erreur:"invalid conversion from unsigned int to char"


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    fichier.read(n_tile,1);
    fichier.read(width,1);
    fichier.read height,1);
    fichier.read(offsetX,1);
    fichier.read(offsetY,1);
    ?????????

  10. #50
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    Là par contre, il faut utiliser >> ^^
    read() c'est pour remplir une chaine de caractère avec un fichier, là je suppose que tes valeurs sont séparées par des espaces ou sauts de ligne, et donc c'est >> qui convient.

  11. #51
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    ouinnnnnnnnnnnnnnnnnnnnnn ca plante encore lors du programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    void Map::chargementMap(char* nom_map)
    {
    int i,x,y;
    char buffer[256];
    ifstream fichier(nom_map);
    if (!fichier) cerr << "Impossible d'ouvrir la map  !" << endl;
    memset(&buffer,0,sizeof(buffer));
    /* BG SOUND */
    fichier.read(buffer,256);
    this->bg_sound = FMUSIC_LoadSong(buffer);
    if(!this->bg_sound)
    cerr <<"Erreur lors du chargement de la carte: %s\n"<< endl;//C a trasformer
     
    /* CHIPSET */
    memset(&buffer,0,sizeof(buffer));
    fichier.read(buffer,256);
    this->surf_chipset= SDL_LoadBMP(buffer);
     
     
    //couleur transparente
    SDL_SetColorKey(this->surf_chipset, SDL_SRCCOLORKEY, SDL_MapRGB(this->surf_chipset->format,8,33,82));
     
    //lecture chacun des membres
     
    fichier >> n_tile;
    fichier >> width;
    fichier >> height;
    fichier >> offsetX;
    fichier >> offsetY;
    //allocution memoire
    this->chipset = new s_chipset[n_tile];
     
    for(i=0;i<n_tile;i++)
    {
    fichier >> chipset[i].x;
    fichier >> chipset[i].y;
    fichier >> chipset[i].collision;
    fichier >> chipset[i].nextTile;
    }
    //alloue memoire pr data
    data = new unsigned int[width*height];
     
         for(x=0;x<this->width;x++)
            for(y=0;y<this->height;y++)
            {
               fichier >> GET_TILE(x,y,map);
               if(GET_TILE(x,y,map)>=this->n_tile)
               {
                  cerr << "Carte corrompue!"<<  endl;
                  cerr << x << endl;
                  cerr << y << endl;
                  GET_TILE(x,y,map)=0;
               }
            }
         fichier.close();
     
         FMUSIC_PlaySong(this->bg_sound);
    }
    j'ai isolé le probleme :Erreur lors du chargement de la carte .

  12. #52
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    non après vérification , ca vient pas de ca...

  13. #53
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    j'ai modifié mais j'ai Erreur lors du chargement de la carte:

    chargement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    void Map::sauvegarde(char *filename,char *bg_sound,char *chipset)
    {
        int i,x,y;
        char buffer[256];
    ofstream fichier(filename,ios_base::binary);
     
         memset(&buffer,0,sizeof(buffer));
         strcpy(buffer,bg_sound);
         fichier << buffer;
         memset(&buffer,0,sizeof(buffer));
         strcpy(buffer,chipset);
         fichier << buffer;
    if (!fichier) return;
     
     
    //enregistrement variable
     
    fichier << n_tile;
    fichier << width;
    fichier << height;
    fichier << offsetX;
    fichier << offsetY;
     
    //enregistrement tableau
     
    for (i=0;i<this->n_tile;i++)
    {
        fichier << this->chipset[i].x; //enregistre coordoné x de chaque tuile
        fichier << this->chipset[i].y;
        fichier << this->chipset[i].collision;
        fichier << this->chipset[i].nextTile;
     
    }
      for(x=0;x<this->width;x++)
          for(y=0;y<this->height;y++)
    fichier << GET_TILE(x,y,map);
     
    fichier.close(); //ferme le fichier
     
    }
    sauvegarde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    void Map::chargementMap(char* nom_map)
    {
     
     
    int i,x,y;
    char buffer[256];
     
    ifstream fichier(nom_map,ios::binary);
    if (!fichier) cerr << "Impossible d'ouvrir la map  !" << endl;
    memset(&buffer,0,sizeof(buffer));
    /* BG SOUND */
    fichier.read(buffer,256);
    this->bg_sound = FMUSIC_LoadSong(buffer);
    if(!this->bg_sound)
    cerr <<"Erreur lors du chargement de la carte"<< endl;
     
    /* CHIPSET */
    memset(&buffer,0,sizeof(buffer));
    fichier.read(buffer,256);
    this->surf_chipset= SDL_LoadBMP(buffer);
     
     
    //couleur transparente
    SDL_SetColorKey(this->surf_chipset, SDL_SRCCOLORKEY, SDL_MapRGB(this->surf_chipset->format,8,33,82));
     
    //lecture chacun des membres
     
    fichier >> n_tile;
    fichier >> width;
    fichier >> height;
    fichier >> offsetX;
    fichier >> offsetY;
    //allocution memoire
    this->chipset = new s_chipset[n_tile];
     
    for(i=0;i<n_tile;i++)
    {
    fichier >> chipset[i].x;
    fichier >> chipset[i].y;
    fichier >> chipset[i].collision;
    fichier >> chipset[i].nextTile;
    }
    //alloue memoire pr data
    data = new unsigned int[width*height];
     
         for(x=0;x<this->width;x++)
            for(y=0;y<this->height;y++)
            {
               fichier >> GET_TILE(x,y,map);
               if(GET_TILE(x,y,map)>=this->n_tile)
               {
                  cerr << "Carte corrompue!"<<  endl;
                  cerr << x << endl;
                  cerr << y << endl;
                  GET_TILE(x,y,map)=0;
               }
            }
         fichier.close();
     
         FMUSIC_PlaySong(this->bg_sound);
    }

  14. #54
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    Salut,

    Là c'est un peu compliqué, effectivement peut-être que read n'est peut être pas la bonne solution.

    On peut voir le format de fichier??
    Parceque tout dépend de ce format...

  15. #55
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    le format est en .map

  16. #56
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    J'ai regardé le tuto, ca va être un enfer de convertir tout ça en fstream.

    Autant laisser tel quel, après tout le C fait partie du C++

    Si néanmoins tu veux utiliser les streams, alors bon courage...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
         FILE *f;
         int i,x,y;
         char buffer[256];
     
         if(!map) return;
         f=fopen(filename,"wb");
         if(!f) return;
     
         memset(&buffer,0,sizeof(buffer));
         strcpy(buffer,bg_sound);
         fwrite(&buffer,255,sizeof(char),f);
         memset(&buffer,0,sizeof(buffer));
         strcpy(buffer,chipset);
         fwrite(&buffer,255,sizeof(char),f);
    -->

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
         ofstream f;
         int i,x,y;
     
         if(!map) return;
         f.open(filename, ios::binary);
         if(!f) return;
     
         f << bg_sound << endl;
     
         f << chipset << endl;
    et au chargement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    void LoadMap(struct s_map *map, char *filename)
    {
         FILE *f;
         int i,x,y;
         char buffer[256];
     
         if(!map) return;
         f=fopen(filename,"rb");
         if(!f) return;
     
         /* BG SOUND */  
         memset(&buffer,0,sizeof(buffer));   
         fread(&buffer,255,sizeof(char),f);
         map->bg_sound = FMUSIC_LoadSong(buffer);
         if (!map->bg_sound)
             fprintf(stderr,"Erreur lors du chargement de la carte: %s\n", FMOD_ErrorString(FSOUND_GetError()));
     
         /* CHIPSET */
         memset(&buffer,0,sizeof(buffer));
         fread(&buffer,255,sizeof(char),f);
         map->surf_chipset=SDL_LoadBMP(buffer);
         SDL_SetColorKey(map->surf_chipset, SDL_SRCCOLORKEY, SDL_MapRGB(map->surf_chipset->format,8,33,82));
    -->

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    ifstream f;
         int i,x,y;
         string buffer;
     
         if(!map) return;
         f.open(filename,ios::binary);
         if(!f) return;
     
         /* BG SOUND */
         getline(f, buffer);
         map->bg_sound = FMUSIC_LoadSong(buffer.c_str());
         if (!map->bg_sound)
             fprintf(stderr,"Erreur lors du chargement de la carte: %s\n", FMOD_ErrorString(FSOUND_GetError()));
     
         /* CHIPSET */
         getline(f, buffer);
         map->surf_chipset=SDL_LoadBMP(buffer.c_str());
         SDL_SetColorKey(map->surf_chipset, SDL_SRCCOLORKEY, SDL_MapRGB(map->surf_chipset->format,8,33,82));
    Après, pour le reste, dans la partie sauvegarde tu utilises f << mavaleur << " ", et dans la partie chargement c'est juste f >> mavaleur;

    Enfin te dire tout ça c'est pas t'aider, l'idéal c'est que tu apprennes à te servir des streams en essayant avec un petit programme de sauvegarder et de charger des données dans/d' un fichier.

    Parce que là l'exemple du tuto c'est du hardcore direct...

    Enfin voilà

  17. #57
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    merci encore
    je vais essayer de faire un petit programmer sur ces streams ,pour m'entrainer,car tu a raison c'est plutot hardcore ici...

    sinon j'ai fait comme tu mas dit mais ca plante
    chargement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    void Map::chargementMap(char* nom_map)
    {
     
     
    ifstream f;
         int i,x,y;
         string buffer;
     
     
         f.open(nom_map,ios::binary);
         if(!f) return;
     
         /* BG SOUND */
         getline(f, buffer);
         this->bg_sound = FMUSIC_LoadSong(buffer.c_str());
         if (!this->bg_sound)
             fprintf(stderr,"Erreur lors du chargement de la carte: %s\n", FMOD_ErrorString(FSOUND_GetError()));
     
         /* CHIPSET */
         getline(f, buffer);
         this->surf_chipset=SDL_LoadBMP(buffer.c_str());
         SDL_SetColorKey(this->surf_chipset, SDL_SRCCOLORKEY, SDL_MapRGB(this->surf_chipset->format,8,33,82));
     
    //lecture chacun des membres
     
    f >> n_tile;
    f >> width;
    f >> height;
    f >> offsetX;
    f >> offsetY;
    //allocution memoire
    this->chipset = new s_chipset[n_tile];
     
    for(i=0;i<n_tile;i++)
    {
    f >> chipset[i].x;
    f >> chipset[i].y;
    f >> chipset[i].collision;
    f >> chipset[i].nextTile;
    }
    //alloue memoire pr data
    data = new unsigned int[width*height];
     
         for(x=0;x<this->width;x++)
            for(y=0;y<this->height;y++)
            {
               f >> GET_TILE(x,y,map);
               if(GET_TILE(x,y,map)>=this->n_tile)
               {
                  cerr << "Carte corrompue!"<<  endl;
                  cerr << x << endl;
                  cerr << y << endl;
                  GET_TILE(x,y,map)=0;
               }
            }
         f.close();
     
         FMUSIC_PlaySong(this->bg_sound);
    }
    sauvegarde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    void Map::sauvegarde(char *filename,char *bg_sound,char *chipset)
    {
        int i,x,y;
        char buffer[256];
        ofstream f;
     
    f.open(filename, ios::binary);
    if(!f) return;
     
    f << bg_sound << endl;
     
    f << chipset << endl;
     
     
     
    //enregistrement variable
     
    f << n_tile <<"",
    f << width <<"",
    f << height <<"",
    f << offsetX <<"",
    f << offsetY <<"";
     
    //enregistrement tableau
     
    for (i=0;i<this->n_tile;i++)
    {
        f << this->chipset[i].x <<"", //enregistre coordoné x de chaque tuile
        f << this->chipset[i].y <<"",
        f << this->chipset[i].collision <<"",
        f << this->chipset[i].nextTile <<"";
     
    }
      for(x=0;x<this->width;x++)
          for(y=0;y<this->height;y++)
    f << GET_TILE(x,y,map) <<"",
     
    f.close(); //ferme le f
     
    }

  18. #58
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    Salut,

    Dans la sauvegarde faut mettre des espaces entre les guillemets

  19. #59
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    Oula gros problème...
    dans ma class map j'ai un attribut privé offsetX
    et dans mon sprites.cpp je dois accéder à ce offset et le modifier quand le personnage dépasse les bords de ma carte...

    je ne vois pas comment faire étant donné qui est privé...

  20. #60
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    Bonsoir,

    le tuto original étant en C, le mot-clef private n'existant pas en C, pourquoi as-tu mis le mot-clef private dans ta classe lors du passage en C++?

Discussions similaires

  1. [SDL] Probleme de map
    Par Pierra26 dans le forum SDL
    Réponses: 2
    Dernier message: 04/06/2009, 23h17
  2. [C#/SDL] Projet RPG 2D HxH
    Par deadstar62 dans le forum Projets
    Réponses: 6
    Dernier message: 11/02/2009, 01h04
  3. [SDL] Quadrillage d'une map
    Par Skymaster dans le forum SDL
    Réponses: 3
    Dernier message: 23/06/2007, 16h37
  4. Projet jeu RPG/moteur 3D isométrique avec SDL
    Par Milan111 dans le forum Projets
    Réponses: 4
    Dernier message: 13/04/2006, 22h01
  5. Réponses: 9
    Dernier message: 04/10/2005, 19h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo