Partage
  • Partager sur Facebook
  • Partager sur Twitter

Créer des Maps en Python

PyGame - PyOpenGL

    30 juillet 2010 à 9:09:49

    Salut a tous,

    J'ai dans l'idée depuis quelque temps de créer un éditeur de Maps 3D( non graphique ) en python, avec PyGame et PyOpenGL. o_O

    Je m'explique, je crée avec n'importe quel éditeur de texte un fichier *.txt ( ou autre ^^ ): par exemple celui-ci:


    x = -1
    S = "/home/lowshadow/files/sapin.obj -t sapin_texture.png"
    h = "/home/lowshadow/files/herbe.pnj"
    r = "/home/lowshadow/files/route.png"
    
    MapLevel                       #Les hauteurs, relief de la map.
    [
    0 0 0 0 0 0 0 0 0 0 0 0 0 0;
    0 0 0 0 0 0 0 0 0 0 0 0 0 0;
    0 0 0 0 0 0 0 0 0 0 0 0 0 0;
    0 0 0 0 0 0 0 1 1 1 0 0 0 0;
    0 0 0 1 0 0 0 1 2 1 0 0 0 0;
    0 0 0 2 1 0 0 1 1 1 0 0 0 0;
    0 0 0 0 0 0 0 0 0 0 0 0 x x;
    0 0 0 0 0 0 0 0 0 0 0 x 0 0;
    0 0 0 0 0 0 0 0 x x x x 0 0;
    0 1 0 0 0 0 0 x 0 0 0 0 x 0;
    0 1 1 0 0 0 0 x 0 0 0 0 0 x;
    0 0 0 0 0 0 x 0 0 0 0 0 0 0;
    ]
    
    MapObject                       #Les objects a placer, ici un sapin en .obj .
    [
    0 0 S 0 0 0 0 0 0 0 0 S S S;
    0 S S S 0 0 0 0 0 0 0 0 S S;
    0 S 0 S 0 0 0 0 0 0 0 0 S 0;
    0 0 0 0 0 0 0 0 0 0 0 0 0 0;
    0 0 0 0 0 0 0 0 0 S 0 0 0 0;
    0 0 0 0 0 0 0 0 S S 0 0 0 0;
    0 0 0 0 S 0 0 0 0 0 S 0 0 0;
    0 0 0 S S 0 0 0 0 0 0 0 0 0;
    0 0 0 0 0 0 0 0 0 0 0 0 0 0;
    0 0 0 0 0 0 0 0 0 0 S 0 0 0;
    0 0 0 0 0 0 0 0 0 S S 0 0 0;
    0 0 0 0 0 0 0 0 0 0 S S S 0;
    ]
    
    MapTexture                      #Les textures de chaques cases/tuiles.
    [
    h h h h R h h h h h h h h h;
    h h h h R h h h h h h h h h;
    h h h h R h h h h h h h h h;
    h h h h R h h h h h h h h h;
    h h h h R R h h h h h h h h;
    h h h h h R h h h h h h h h;
    h h h h h R h h h h h h h h;
    h h h h h R h h h h h h h h;
    h h h h h R h h h h h h h h;
    h h h h R R R R h h h h h h;
    h h h h R h h R h h h h h h;
    h h h h R h h R h h h h h h;
    ]
    



    et depuis le code python ( que je cherche a faire ), le fichier est lu et un rendu temps réel est fait avec PyOpenGL :p .
    Le problème est que je ne sais pas comment faire :( , et il n'y a pas le moindre tuto sur Internet ( enfin concernant ce problème ), lire le fichier avec python n'est pas un problème, le problème est de "l'interpréter et l'afficher".
    Je vous demande donc, comment dois-je faire, comment doit être mon code ?

    Merci D'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      30 juillet 2010 à 21:09:37

      Salut ! :)

      Le plus simple est peut-être de créer une classe Carte, qui contiendrait tous les attributs et les méthodes nécessaires à l'affichage d'une carte. Ainsi, dans ton éditeur de cartes, l'utilisateur créera sa carte, qui sera représentée par un objet (dont la classe est Carte).

      Ensuite, utilise le module Pickle. Il est inclus dans la bibliothèque standard et permet d'enregistrer un objet dans un fichier (avec tous ses attributs) puis de le charger en mémoire. Tu n'auras qu'à l'utiliser pour enregistrer les cartes créées, et surtout pour les charger en mémoire lorsque l'utilisateur veut reprendre son travail. Si tu cherches comment il s'utilise, tu peux jeter un coup d'œil dans cette partie du tuto de prolixe.

      Note : si tu peux, utilise plutôt CPickle, qui fait exactement la même chose que Pickle, mais qui passe par le C. Cela lui permet de s'exécuter très rapidement. ;)
      • Partager sur Facebook
      • Partager sur Twitter
        30 juillet 2010 à 21:20:04

        Le problème ne vient pas tant du stockage de donnée.
        Un parser aurait été codé assez rapidement je pense.
        • Partager sur Facebook
        • Partager sur Twitter
        yjltg.

        Créer des Maps en Python

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown