IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XNA/Monogame Discussion :

[DEBUTANT] Définitions de classes basiques


Sujet :

XNA/Monogame

  1. #1
    Membre à l'essai
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 37
    Points : 24
    Points
    24
    Par défaut [DEBUTANT] Définitions de classes basiques
    Bonjour,

    Je débute ce Framework, il y a assez peu de tuto en Français et à peine plus en Anglais. De plus sachant que je ne suis pas fortiche en Anglais cela ne m'aide absolument pas.
    J'aime savoir ce que je j'utilise le problème c'est que je n'arrive pas à trouver de définition précise et simple de classes basiques du Framework. Je demande votre aide. Pourriez vous m'éclairer sur leurs utilitées, utilisation avec un petit exemple si possible (en bonus ). De plus, je pense que ça aidera la plupart des débutants.

    Se sont donc des classes de bases :
    - GraphicsDeviceManager
    - SpriteBatch
    - ContentManager
    - RenderTarget2D & Texture2D

    Voilà elle sont basiques mais indispensable au Framework. J'aimerais vraiment les maitriser avec votre aide si possible.

    Merci

    P.S : Si vous souhaitez m'en faire découvrir quelques unes en plus ce sera avec plaisir.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Octobre 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Octobre 2008
    Messages : 187
    Points : 448
    Points
    448
    Par défaut
    Hello,

    Il n'y a pas encore beaucoup de documentation sur le framework Monogame, mais tu peux chercher des tutos sur XNA c'est quasiment la même chose, et il y en a plein ! Pour info Monogame est le remplaçant de XNA, il est censé fonctionner pareil.

    GraphicsDeviceManager Cette classe a pour but de gérer le mode d'affichage du jeu: quelle est la taille de l'écran, est-on en full screen, quel est le format vidéo, etc. Dans la plupart des cas, on ne se sert de cette classe que pour changer la taille de l'écran. Par exemple tu peux mettre dans ta classe Game :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    protected override void Initialize()
    {
        base.Initialize();
     
        graphicsDevice.PreferredBackBufferWidth= 1280;
        graphicsDevice.PreferredBackBufferHeight= 720;
        graphicsDevice.IsFullScreen = true;
        graphicsDevice.ApplyChanges();
    }
    SpriteBatch C'est la classe qui te permet d'afficher des textures et du texte à l'écran. Chaque appel à Draw() DrawString() doit se trouver entre deux Begin() et End(). Un example, toujours dans la classe Game:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    protected override void Draw(GameTime gameTime)
    {
        GraphicsDevice.Clear(Color.Black);
     
        spriteBatch.Begin();
        spriteBatch.Draw(maTexture, maPosition, Color.White);  // maTexture est une Texture2D, la position est un Vector2 qui est la position en pixel où on veut afficher l'image
        spriteBatch.End();
     
        base.Draw(gameTime);
    }
    ContentManager Cette classe te permet de charger des ressources dans le jeu (une ressource c'est tout les fichiers utilisés dans le jeu sauf le code: les textures, les polices texte, les modèles 3D, les shaders, les fichiers de configuration XML, etc). Pour charger une texture par exemple, o va écrire le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    protected override void LoadContent()
    {
        base.LoadContent();
     
        Texture2D texture = Content.Load<Texture2D>("chemin/vers/le/fichier/de/ma/texure");
    }
    Texture2D Une Texture2D représente une image, qui est stockée dans la mémoire de la carte graphique. Le meilleur moyen pour créer des Texture2D est de les charger à l'aide du ContentManager (voir plus haut) depuis une image png, jpg, tga, bmp... Une fois que la texture est créée, on peut l'afficher avec le SpriteBatch.

    RenderTarget2D Là c'est un peu plus compliqué, et je ne pense pas que tu en ai besoin pour des petits projets... Pour faire simple, lorsque tu demande au SpriteBatch d'afficher des images, ce qui se passe c'est qu'il va dessiner ces images dans une texture temporaire qui s'appelle le BackBuffer et qui fait la taille de l'écran en pixels. Ensuite à la fin de la boucle de rendu, c'est cette texture qui est envoyé à l'écran pour être affichée. Et ben une RenderTarget2D c'est ça: c'est une texture temporaire sur laquelle on peut afficher d'autre textures ; on peut en créer pleins de toutes les tailles différentes et de tous les formats possibles, mais c'est surtout utilisé pour des techniques de rendu compliquées donc je ne vais pas fournir d'exemple :p


    Voilà avec ces quelques classes (en plus de la classe Game qui est centrale), tu peux déjà faire plein de trucs en Monogame. Bon courage !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 37
    Points : 24
    Points
    24
    Par défaut
    Excellent, merci beaucoup !

    Du coup pour afficher un sprite (personnage) avec des habits différents le renderTarget est la méthode à utiliser ?

  4. #4
    Membre averti
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Octobre 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Octobre 2008
    Messages : 187
    Points : 448
    Points
    448
    Par défaut
    Citation Envoyé par Romaiiin Voir le message
    Du coup pour afficher un sprite (personnage) avec des habits différents le renderTarget est la méthode à utiliser ?
    Non pas du tout ^^

    Je te conseille plutôt de créer plusieurs sprites différents : un pour le personnage "nu", un pour chaque habit, un pour chaque chapeau/casque, etc. Ensuite tu reconstitue ton personnage en affichant les sprites qui vont bien les uns par dessus les autres.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 37
    Points : 24
    Points
    24
    Par défaut
    Okay merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Debutant] Sources des Classes
    Par youbyoub dans le forum Langage
    Réponses: 3
    Dernier message: 16/02/2006, 01h39
  2. [POO] Débutant en POO, class mysql php5
    Par ouafouaf dans le forum Langage
    Réponses: 9
    Dernier message: 06/02/2006, 10h21
  3. [Super debutant] probleme de "classes"
    Par frett dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 26/03/2005, 13h43
  4. [debutant][Classpath][Linux] Classe non trouvée
    Par oghma777 dans le forum Général Java
    Réponses: 5
    Dernier message: 15/10/2004, 22h26
  5. [Eclipse3.0][Debutant]Pas de .class généré
    Par willowII dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 10/08/2004, 18h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo