Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C#] Aide Projet de petit jeu

    6 mai 2019 à 22:47:37

    J'ai un projet à rendre à la fin de l'année pour mon BTS, je me suis lancé dans le développement d'un petit jeu qui me plait énormément. Cependant il me manque encore une partie que je ne sais pas aborder.

    Pour l'explication du projet:

    C'est un petit jeu de tour par tour du type Risk (vous savez le jeu de société de conquête).
    Il s'agit d'un jeu avec une carte avec plusieurs territoires.
    Une partie se joue de 2 à 4 joueurs et le but étant de conquérir tout les territoires ennemis.
    Un joueur pourra par tour recruter plusieurs unités de combat (avec plusieurs type différents), pourra déplacer ses troupes sur ses territoires et attaquer un territoire ennemi.

    J'ai donc créer un menu avec l'inscription d'un joueur et un second menu de sélection ou l'on peut connecter 4 joueurs (je précise que le jeu se jouera sur une seule machine).

    Mon problème étant que je ne sais pas comment procéder pour gérer les différentes fenêtres de mes joueurs, je m'explique:

    - Comment je peux changer mon interface de jeu en fonction du joueur qui joue ? 
    - Comment en C# je peux coder le fait de "changer" de fenêtre de jeu, et gérer mes tours de jeu graphiquement.

    J'avais pensé a plusieurs solutions mais je ne vois concrètement pas comment je pourrais générer les différents écrans de jeux avec 2/3/4 joueurs. 

    Le 2e soucis c'est que je me demande comment faire en C# pour gérer ma carte. 
    En effet ma carte sera découpée en plusieurs territoires et par conséquent j'aimerais qu'ils soient clickable, et des informations affichés par la suite dessus. 
    Je me demandais donc si je devais mettre par exemple l'image de ma carte en dur et la découper après(est-ce possible ?), ou bien la découper en petits territoires et les incorporer dans des button ou libelle clickable ? 

    Sur ce point la je suis aussi perdu et j'avoue ne pas savoir comment faire réellement.

    Etant débutant je suis prêt à recevoir toute réponses, ou pistes qui m’amènerais à finaliser mon projet.
    J'espère avoir été clair.
    Merci !
    • Partager sur Facebook
    • Partager sur Twitter
      7 mai 2019 à 11:47:02

      Je suis jaloux, pendant mon BTS on nous a refusé de présenter des jeux comme projet. Obligé de partir sur une appli de gestion.

      Pour ton 1er problème :

      Pour moi tu n'as pas besoin de changer de fenêtre, seulement d'affichage. 

      Pour ton 2eme problème :

      J'ai jamais fait ce genre choses mais voila ce que je ferai :

      - Selon moi pas besoin de découper ton image. Ca peut cela dit être interessant si tu veux rendre ta carte un peu dynamique et lui ajouter des effets. Mais a mon avis c'est se prendre la tête pour rien, surtout vu le contexte du projet

      - Si c'est simplement pour afficher des infos dessus, pourquoi tu récupères pas la position de la souris lors du click avec laquelle tu détermineras quel endroit de la carte a été cliqué ?

      Petite précision : tu comptes le faire avec quoi ton jeux ? Unity ? Winform ? Wpf ?

      -
      Edité par earp91 7 mai 2019 à 11:48:57

      • Partager sur Facebook
      • Partager sur Twitter
        7 mai 2019 à 19:33:55

        Salut !

        Alors déja merci de ta réponse ! Pour notre projet c'est vrai que j'ai de chance, on pouvait faire n'importe quoi tant que c'était fait en POO. 

        Du coup par rapport à ce que tu m'as dit j'avais des petites questions.

        Pour mon 1e probleme :

        Pour gérer l'affichage de mes joueurs, au final la carte ne changera pas puisque les zones conquises seront les mêmes pour tout le monde, donc ça peut être une bonne solution, après à voir comment je peux faire justement pour changer tout l'affichage selon le joueur en cours mais ça me parait possible.

        Pour mon 2e problème:

        J'avais pensé à cette idée de découpage de carte d'une part pour pouvoir gérer en objet chaque territoire, et d'une autre part pour savoir quel territoire appartient à qui ...etc

        Après si il existe une méthode pour récupérer la position du click pourquoi pas mais mes territoires sont clairement difformes, du coup la je vois mal comment procéder. De plus comment pourrais-je gérer ma collection de territoire avec cette méthode ? 

        Pour répondre à ta dernière question: Je le fais en Windows form

        • Partager sur Facebook
        • Partager sur Twitter
          9 mai 2019 à 12:30:04

          Re-salut

          Je précise juste que j'ai aucune experience dans le développement de jeu, donc mes réponses sont sans doutes pas adaptées

          Mais bon, comme tu l'as dis, ils veulent de la POO, pas un Assassin's creed AAA

          Pour l'affichage :

          J'imagine bien quelque chose du genre

          public class Jeu
          {
              private Joueur joueurActuel
              private List<Joueur> lesJoueurs
              
              public void onChangeDeJoueur()
              { 
                int i = lesJoueurs.IndexOf(joueurActuel);
                if(i == lesJoueurs.Count - 1)
                {
                  joueurActuel = lesJoueurs[O]
                }
                else
                {
                  joueurActuel = lesJoueurs[i + 1]
              }
          }

          Et ensuite tu définis ton affichage en fonction du joueurActuel

          Pour la carte :

          Oui tu peux récupérer la position du clique, tu trouveras des exemples sur le net, en voila un : https://stackoverflow.com/questions/7055211/how-to-get-the-position-of-a-click

          En esperant que ca t'aide

          • Partager sur Facebook
          • Partager sur Twitter
            10 mai 2019 à 9:51:16

            Comme l'a indiqué @earp91, il faut complètement dissocier l'affichage des mécanismes de gameplay.

            Quand le gameplay détermine que c'est à un joueur X de jouer, il change la valeur de "current player" de l'IHM et l'IHM ne fait que lire les informations du "current player" pour les afficher.

            Pour le problème de de la carte, moi, je me casserais pas trop la nénette, le format SVG est mon ami, il y a des contrôles qui l'affiche en natif, il a la notion de groupe "clickable", et cerise sur le gâteau, Google m'indique que quelqu'un c'est déjà enquiquiner à faire la map de risk au format SVG.

            https://github.com/raddrick/risk-map-svg

            • Partager sur Facebook
            • Partager sur Twitter
            Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
              26 mai 2019 à 18:13:29

              Merci pour vos réponses !

              J'ai pris en comptes vos messages et je les ais appliqués. J'ai depuis codé tous les jours, mais vous m'avez grandement aidé pour la base ! Le jeu est bientot sur sa fin, pour la map j'ai opté à la place des images comme territoires des pictureBox carrés qui changent de couleur. Ca rend bien et je rendrais avec ses graphismes pour le BTS. Je compte continuer le développement de ce jeu pour avoir un visuel propre et non de simples carrés, sauf que les fonctionnalités seront déja la.

              Merci à tous.

              ps: Désolé de cette réponse tardive.

              • Partager sur Facebook
              • Partager sur Twitter

              [C#] Aide Projet de petit jeu

              × 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