Partage
  • Partager sur Facebook
  • Partager sur Twitter

C# - 2D isométrique

    19 septembre 2017 à 21:16:46

    Bonjour/bonsoir à vous !

    Tout d'abord je vous remercie de prendre le temps de me lire, de comprendre ce que j'écris et même de me répondre pour les plus sympathiques d'entre vous :)

    Je suis étudiant en programmation informatique et depuis quelques temps je m'intéresse de près à la 2D isométrique (donc impression de 3D !^^).

    Gros soucis, je n'ai aucunes idées de comment je peux aborder la chose. Je trouve pas mal de 2D iso en JAVA, mais très peu en c# ou alors sans explication. (Je précise que j'hésite avec le C++ aussi...)

    J'aimerais si possible, pas forcément "un code tout fait" bien entendu, mais une explication détaillée avec des "exemples" de ce que je peux instauré.

    Ma première "victoire" serait de créer une carte de 20X20 avec un personnage contrôlable et un gros méchant pas gentil de caractère agressif et se rapprochant du personnage contrôlable.

    Mais je ne sait ni par ou commencer, ni quoi faire, ni comment. Je vous remercie d'avance pour votre patience, sachez que je suis très très loin d'être un expert et surtout un débutant. J'ai des notions correctes de programmation (heureusement vu mes études^^), mais je suis loin d'avoir le niveau de personnes en entreprise.

    Si vous avez des liens à me proposer je suis autant preneur, mais je compte prioritairement sur vous pour m'aider. Merci à vous et bonne journée

    A bientôt :)

    -
    Edité par Bald' 19 septembre 2017 à 21:21:43

    • Partager sur Facebook
    • Partager sur Twitter
      19 septembre 2017 à 23:08:26

      Hello,

      En ce qui me concerne, je distingue 2 formes d'isométrie : La 2D et la 3D isométrique. La première, c'est de donner une perspective trompe-l'oeil uniquement en utilisant un positionnement d'élément dans un espace 2D. La seconde donne le même rendu que la 1ere mais en utilisant des techniques de calcul dans un espace 3D.

      Je trouve la 2eme approche plus simple que la 1ere, simplement parce que quand on parle 3D, on vient souvent avec un package d'outils minimaliste qui intègre déjà tout ce qu'il faut pour appliquer des transformations isométrique à un ensemble de sommets (transformation matricielle, calculs vectoriel, ...)

      Dans la première approche...Il s'agit juste de disposer des images suivant des coordonnées 2D. Ce qui donne l'aspect isométrique, c'est ce que contient l'image affichée.

      Un excellent exemple est la suite RPG Maker (2003, XP par ex.). Des logiciels de création de jeu 2D où certains se sont amusés à faire des tilesets isométrique pour donner un semblant de 3D alors que le logiciel initial en est totalement incapable.

      Quoiqu'il en soit...De la 2D isométrique est facilement réalisable avec WinForm. Il te suffit de surcharger la méthode OnPaint du contrôle en charge de ton dessin et de t'amuser à placer tes tuiles dans l'objet Graphics passé dans les arguments de la méthode.

      "Ma première "victoire" serait de créer une carte de 20X20 avec un personnage contrôlable et un gros méchant pas gentil de caractère agressif et se rapprochant du personnage contrôlable."

      Ta première victoire devrait être de réussir à créer une carte.

      Si tu arrives à faire cette première étape, tu pourras ajouter les 2 autres. La première des 2 autres étape sera simple puisqu'elle réagira à des événements utilisateur...La seconde pourra être plus complexe puisqu'elle met un premier pied dans l'intelligence artificielle (sans parler de deep-learning, faire en sorte qu'un bonhomme se déplace de façon crédible dans un jeu, c'est loin d’être une mince affaire).

      • Partager sur Facebook
      • Partager sur Twitter
        20 septembre 2017 à 12:20:39

        Bonjour,

        Merci de m'avoir répondu.

        Nous sommes d'accord pour les formes d'isométrie. 

        Je vais me renseigner sur WinForm, mais pour la surcharge de méthode dont tu me parles, aurais-tu un ou des exemples à me montrer ?

        En ce qui est de la victoire, oui bien entendu ^^ Mais la finalité devrait si possible ressembler à ceci.

        Je te remercie d'avance pour tes indications, j'en prend note :)

        • Partager sur Facebook
        • Partager sur Twitter
          20 septembre 2017 à 21:40:26

          Pour l'exemple de code, regarde la doc que je t'ai fourni en lien. Tu y trouveras tout ce que tu as besoin de savoir, exemple de code à l'appuie.

          Pense aussi à mettre le site MSDN dans tes favoris si tu bosses sur technologie .NET (et technologie Microsoft de manière plus générale). Le MSDN, c'est la documentation de référence pour toutes leurs technos...Sans ça, tu n'avanceras jamais. Dessus, tu y trouveras l'intégralité de la documentation des différentes technologies + des articles explicatifs des concepts mis en oeuvre ou proposés + des articles traitant de best-practice quant à l'usage de leurs produits + un forum où des personnes viennent poser des questions et ce sont les gars de chez Microsoft qui y répondent (ou d'autres personnes).

          Le tip du jour : Dans Visual Studio, depuis la version 2008, il te suffit de placer le curseur d'édition sur le nom de quelque chose et d'appuyer sur la touche F1 du clavier. Ca te lancera directement une recherche dans la documentation (MSDN online depuis VS2012). Si le curseur se trouvait sur un nom d'un type se trouvant dans le Framework .NET, ça te mènera directement à la documentation du type où tu trouveras des explications sur sa fonction, comment l'utiliser, tous les membres qu'il expose et des exemples de code pour mettre en oeuvre ce qui est expliqué.

          • Partager sur Facebook
          • Partager sur Twitter
            21 septembre 2017 à 8:39:21

            D'accord, je te remercie pour tout. Je vais me renseigner et revenir ici surement dans les prochains jours si j'ai des questions, et surtout des demandes de renseignements.

            Encore merci.

            • Partager sur Facebook
            • Partager sur Twitter

            C# - 2D 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