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

C++ Discussion :

[SFML/2D] Le Mapping


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Ao�t 2015
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 25
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2015
    Messages : 6
    Par d�faut [SFML/2D] Le Mapping
    Salut � tous et � toutes ^^

    Cela fait quelque temps que j'essaye de faire un petit jeu de plateforme en c++ avec la biblioth�que SFML.

    Mais malheureusement, je bloque sur le mapping :/ Je n'ai jamais trouv� un tutoriel, ou une personne pouvant m'expliquer une bonne fois pour toutes ^^
    Je me suis pench� sur le tileMapping, mais je trouve cette technique assez "mauvaise" car celui qui veut modifier la map n'� qu'� modifier le fichier map.txt ^^

    Donc voila je cherche un moyen d'afficher des maps en c++ avec SFML 2
    Voila ce que sa donner :

    map.txt
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    5 4
    0 0 0 0
    0 0 0 0
    0 0 0 0
    0 0 0 0
    0 0 0 0
    le code je le gardais en m�moire dans une matrice :
    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
     
    #ifndef MATRIX_H_INCLUDED
    #define MATRIX_H_INCLUDED
     
    #include <vector>
    #include <cassert>
    #include <iostream>
    #include <fstream>
     
    template<class T>
    class Matrix
    {
    public:
        Matrix(std::size_t width, std::size_t height, T const& t = T{}) :
            w(width),
            h(height),
            datas(w*h, t) {}
        Matrix(Matrix const& m) = default;
        Matrix& operator=(Matrix const& m) = default;
     
     
        T const& operator()(std::size_t x, std::size_t y) const
        {
            assert(x < w && y < h && "Out of Bound");
            return datas[y*w+x];
        }
    T& operator()(std::size_t x, std::size_t y)
        {
            assert(x < w && y < h && "Out of Bound");
            return datas[y*w+x];
        }
     
        std::size_t width() const{ return w; }
        std::size_t height() const{ return h; }
    private:
        std::size_t w;
        std::size_t h;
        std::vector<T> datas;
    };
     
    #endif // MATRIX_H_INCLUDED
    Merci � tous et � toutes ^^

  2. #2
    Expert �minent

    Femme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par d�faut
    le tile-mapping n'a rien � voir avec la map elle-m�me, mais � la mani�re d'afficher chaque case.
    A savoir, utiliser une unique texture contenant le dessin de chaque type de case, et dessiner � la position de chacune la partie qui convient.

    Tu peux le faire avec un tas de sprite et Sprite::setTexCoord.

    Apr�s, � toi de voir comment tu d�finis la map elle-m�me.
    Tu as le choix entre:
    • dans le binaire, sous forme d'une variable cr��e en dur, ce qui signifie un recompilation pour changer une case d'une carte;
    • dans un fichier simple � �diter, tel qu'un format texte.
    • dans un fichier complexe � �diter, tel qu'un flux binaire, compress�, et pourquoi pas chiffr�.

  3. #3
    Expert �minent

    Femme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par d�faut
    En fait, tu as deux besoins r�els.

    Cr�er une variable contenant effectivement ta carte, telle qu'utilisable par ton jeu. (une classe Game::Map, par exemple)
    Savoir l'afficher avec l'UI.

    Le tile-mapping r�pond au deuxi�me besoin, ton fichier au premier.
    Il te faudra tout de m�me n�gocier ton interface entre le jeu et l'UI.

  4. #4
    Membre du Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Ao�t 2015
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 25
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2015
    Messages : 6
    Par d�faut
    Donc, j'aimerai bien le faire par fichier compresser comme tu dis, mais je vais d�j� m�entra�ner avec quelque chose de simple, avec le fichier texte.
    Tu aurait un tutoriel ? En c++ ?
    Sinon je cherche de mon c�t� merci... M�me si c'est difficile au d�part ^^

    Edit: Sinon tu as des exemples en c++/sfml de map ? Si oui, je peux jeter un coup d'oeil ?

  5. #5
    Expert �minent

    Femme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par d�faut
    � toi de choisir ce que tu veux stocker.
    En g�n�ral, il y a deux blocs dans un fichier de niveau: la g�ographie (la map en elle-m�me) et la population.
    Tu peux faire deux fichiers, ou tout dans le m�me.

    Par exemple, une map pourrait �tre:
    home sweet home
    prairie.png
    10
    #num�ro dans la tileset, blocant, nom /commentaire
    0 0 herbe
    1 1 arbre
    2 1 caillou
    3 1 mur avec porte
    4 1 toit
    5 1 eau
    6 1 cote ouest
    7 1 cote nord
    8 1 cote pointe nord-ouest
    9 1 cote crique nord-ouest
    5 5 5 5 5 6 2 2 1
    5 5 5 8 7 9 0 0 1
    5 8 7 9 4 0 0 0 1
    5 6 0 0 3 0 0 0 1 
    5 6 0 0 0 0 0 1 1
    5 6 0 0 0 0 0 1 1
    5 6 2 2 2 0 1 1 1
    
    Et le code serait � base d'une structure d�finissant une nature de case, et d'une grille de num�ros (cf faq C++, questions sur les matrices)
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    struct type_case{
        int numero;
        bool traversable;
        std::string commentaire;
    };
    il suffit d'une map<int, type_case> pour faire la correspondance entre la grille et les types.

  6. #6
    Membre du Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Ao�t 2015
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 25
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2015
    Messages : 6
    Par d�faut
    Donc en gros je lis le fichier, je le stock dans une matrice et j'affiche la map quoi ^^
    Je vais essayez et je te dit
    Sinon pour la lecture de fichier j'utilise iostream hein ? ^^

  7. #7
    Expert �minent

    Femme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par d�faut
    C'est parmi les choix les plus communs, et souvent le plus direct.
    N'oublie pas Comment lire un fichier ligne par ligne ?.

Discussions similaires

  1. [SFML]Probl�me Tile Mapping
    Par Charvalos dans le forum Biblioth�ques
    R�ponses: 19
    Dernier message: 30/09/2010, 10h44
  2. Cube mapping SFML
    Par coda_blank dans le forum SFML
    R�ponses: 3
    Dernier message: 22/08/2009, 22h58
  3. R�ponses: 2
    Dernier message: 11/07/2003, 18h24
  4. Probl�me avec memory mapping
    Par gemai dans le forum C
    R�ponses: 13
    Dernier message: 04/07/2003, 09h50
  5. Editeur de MAP en delphi pour jeux directX
    Par PetitScorpion dans le forum DirectX
    R�ponses: 5
    Dernier message: 09/07/2002, 18h47

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