Partage
  • Partager sur Facebook
  • Partager sur Twitter

[SDL] 3D isométrique

    7 août 2006 à 21:35:18

    Bonsoir, bonsoir...

    Suite à une excellente discussion dans ce topic, mon projet de faire de la 3D isométrique à partir de la vraie 3D (OpenGL), s'est converti en celui d'en faire à partir de la 2D (SDL).

    Ce choix n'est pas certain ni définitif de mon côté, mais comme j'ai déjà obtenu les résultats souhaités avec OpenGL (cf. le topic en question), je m'intéresse maintenant à la façon de faire en SDL, pour établir mon choix final.

    Bref, maintenant vous savez tout. J'ai créé ce topic pour m'aider dans le développement de ceci (et j'ai pas mal de problèmes...).

    ----- edit -----
    Tout ce qui est ci-dessous à été modifié.


    Bon. Niveau code, c'est pas trop ça. Alors ce que je vais faire, c'est exposer la manière avec laquelle je voudrais procéder, et que vous me conseillez à ce propos. Tout ça, sans code, juste pour avoir une base.

    Tout d'abord, j'ai créé un forum pour présenter mon projet, et pour exposer le cahier des charges, vous pouvez le consulter ici.

    Voici comment je pense procéder.

    Créer une class qui gère le graphisme, c'est à dire l'initialisation de SDL, de SDL-ttf, et leur arrêt. Cette classe devra pouvoir retourner la surface de la fenêtre SDL qui sera utilisée par d'autres classes pour dessiner à l'écran.

    Créer une class qui gère la map. Cette classe devra être capable de dessiner la map à l'écran, à partir des coordonées du centre de celle ci (sachant que mon but est que la map soit centrée).

    Créer une class qui gère une case de la map. Elle contiendra ses coordonées dans la map, et d'autres info. (pour l'instant je me contente de la base).
    Je pense créer une fonction loadMap() dans la class de la map qui instanciera (orthographe ?) autant de fois que nécessaire la class de la case pour créer autant d'occurence que de cases. Je voudrais mettre ça dans un tableau à deux dimensions (mais je bloque niveau code).

    Ensuite, pour afficher la map. J'ai les coordonées de la map. Je pense calculer les coordonées des cases extrêmes aux 4 coins (en appliquand des calculs, avec les dimensions des diagonales des cases, en fonction du coefficient de déformation). A partir de là, je pourrai établir des boucles qui listeront au moins toutes les cases qui doivent être afficher. Pour chaque case, je vérifie si en effet elle doit être affichée, si c'est le cas, je vérifie si elle doit l'être en entier (coupée par le bord ou non ?), et je l'affiche en tenant compte de ça.
    (Sachant que l'affichage se fait après avoir effectué une rotation, une déformation et un recentrage de la case).

    Déjà, quand j'au réussi à coder tout ça, j'aurai fait un grans pas, car là je suis un peu désorienté.

    J'aimerai que vous me critiquiez sur ma façon de procéder, et m'indiquer ce qui ne va pas.

    Si c'est bon, j'essayrai de transformer ça en pseudo-code, pour une implémentation plus facile ensuite.

    Merci de m'avoir lu !
    • Partager sur Facebook
    • Partager sur Twitter
      9 août 2006 à 19:03:23

      Je vois que mon sujet n'a pas attiré énormément de monde. Constatant mes problèmes, j'ai décidé de tout reprendre de zéro, et d'y aller progressivement. J'ai édité mon premier post en présentant ma manière de penser, et j'attends des remarques/critiques/conseils.

      Merci !
      • Partager sur Facebook
      • Partager sur Twitter

      [SDL] 3D isométrique

      × 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