Forum Programmation.c++ Questions de débutant

1
18
juil.
2013

Bonjour,

Je ne suis pas spécialement débutant en C++ mais j’ai jamais vraiment conçu l’architecture d’un programme un peu gros. Je réalise un ce moment un petit jeu en C++.

  • j’ai une arborescence de classes mais c’est assez lourd. Grâce au mot-clé «using» de C++11 je peux quand même réutiliser le constructeur de la classe parente mais souvent je dois faire un petit truc en plus, donc je ne peux pas l’utiliser.

  • dans la future partie qui permettra l’affichage des sprites, je pensais à un système d’id, chaque classe implantant la méthode getId(). Deux instances d’une même classe peuvent avoir un id différent en fonction des paramètres passés au constructeur. J’aimerais avoir une architecture qui m’offre la possibilité d’avoir plusieurs vues (exemple: mode console, 2D, 3D),

  • si je peux changer la position d’un de ces éléments, j’aimerais pouvoir accéder à la taille maximum du niveau en cours. Pour qu’il soit accessible à tous les objets que je souhaite déplacer, je pensais le mettre en static (dans Level ou dans Element — la classe parente de tous les éléments qui se trouvent sur le terrain)

  • j’ai lu différents articles sur les CES (Component Entity System), et je me demande si un de ceux-là pourraient être intéressant à mon niveau et à l’échelle de mon projet, et si oui comment l’implanter parce que c’est un peu (beaucoup) abstrait pour moi. J’aimerais pouvoir ajouter très facilement de nouveaux objets/monstres etc.

  • Quels bibliothèques me permettraient de pouvoir jouer à mon jeu en console? Je vois que la SDL peut effectuer sont rendu dans le framebuffer, est-ce que c’est aussi possible avec la SFML? (parce que la SDL a l’air quand même sympa à utiliser)

  • Est-ce qu’un rendu avec la libcaca serait acceptable pour joueur à un jeu de puzzle en 2D basé sur une grille?

Avez-vous des avis sur l’architecture de mon programme? Des design pattern qui colleraient à ce que je veux faire (j’ai déjà un peu cherché mais j’ai rien trouvé pour le moment)? Des sites qui proposent des astuces pour construire intelligemment son programme?

Merci d’avance.

  • # héritage

    Posté par (page perso) . Évalué à 2.

    j’ai une arborescence de classes mais c’est assez lourd. Grâce au mot-clé «using» de C++11 je peux quand même réutiliser le constructeur de la classe parente mais souvent je dois faire un petit truc en plus, donc je ne peux pas l’utiliser.

    Je n'ai rien saisi.

    Normalement ça devrait donner ça pour appeler le constructeur parent:

    gentil_fils::gentil_fils(int prenom, int qi)
    : classe_mere(int prenom)
    {
    
    }

    Rien à voir avec using.

    • [^] # Re: héritage

      Posté par (page perso) . Évalué à 1.

      Oui c'est exactement ça que je fais, mais du coup ça me donne une ligne assez longue et je recopie ça pour toutes mes classes… using me permet d'utiliser le constructeur de la classe parente, mais comme je le disais je ne peux pas trop l'utiliser parce que j'ai besoin de faire des choses dans le constructeur qui dépend des classes.

      Je me demandais juste si ça n'était pas possible de simplifier le code vu que c'est toujours la même ligne pour déclarer le constructeur. J'ai l'impression que je ne peux pas trop y échapper…

      Écrit en Bépo selon l’orthographe de 1990

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.