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 :

Soucis avec SpriteBatch


Sujet :

XNA/Monogame

  1. #1
    Membre averti Avatar de Dalini71
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 181
    Points : 343
    Points
    343
    Par défaut Soucis avec SpriteBatch
    Bonjour à tous,

    Je préviens que je suis débutant total dans la XNA, et j'essaye donc de me créer un petit jeu comme ça

    La classe Game de base contient une méthode Draw() qui permet d'afficher les sprites, chez moi ça donne un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    m_spriteBatch.Begin();
    m_spriteBatch.Draw....;
    m_spriteBatch.Draw....;
    m_spriteBatch.Draw....;
    m_spriteBatch.Draw....;
    m_spriteBatch.End();
    Ici sont affichés tous les sprites pour le Menu et le Jeu lui même, mais j'ai voulu que Menu possède sa propre méthode d'affichage pour qu'il affiche lui même ses sprites, voici la fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Menu::display()
    public void display(SpriteBatch sb)
    {        
          sb.Draw();
          ...
    }
    et dans la méthode Draw() de la classe Game j'ai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    m_spriteBatch.Begin();
    myMenu.display(m_spriteBatch);
    m_spriteBatch.End();
    Le soucis c'est qu'à l'exécution j'ai l'erreur suivante :
    "La référence d'objet n'est pas définie à une instance d'un objet."
    lorsque je suis dans la fonction display().

    Apparemment il y a un soucis avec l'objet SpriteBatch, il ne se sent pas à l'aise dans la classe Menu

    Quelqu'un aurait une solution svp ?

  2. #2
    Membre régulier Avatar de LeonardL
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 57
    Points : 71
    Points
    71
    Par défaut
    Salut,

    Tu es sur que l'exception est bien levée à cause spritebatch ? Ca ne parait pas logique qu'elle apparaissent avec la méthode Draw() alors que la méthode Begin() est passée sans soucis avant.

    J'aurais plutôt tendance à dire que l'exception est levée par un objet que tu veux dessiner. Exemple : es tu sur que tes textures sont toutes bien chargées?

  3. #3
    Membre averti Avatar de Dalini71
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 181
    Points : 343
    Points
    343
    Par défaut
    L'exception arrive bien au premier sb.Draw() de la méthode display(), d'après ce que j'ai vu sur le net, ça semblerait vouloir dire que l'objet SpriteBatch n'a pas été instancié.

  4. #4
    Membre régulier Avatar de LeonardL
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 57
    Points : 71
    Points
    71
    Par défaut
    Justement, c'est ce que je disais dans mon précédent message, si ton objet spritebatch n'est pas instancié alors l'appel a la méthode begin() aurait échouée. Or ici le problème arrive plus tard.

    Attention ! Si l'exception est levée sur la ligne d'appel a la méthode Draw() ça ne signifie pas pour autant que c'est le spritebatch qui est en tort, cela peut etre un des objets que tu lui passes en paramètre. Par exemple la texture ou encore la position du sprite a l'écran. Lorsque l'exception est levée, passes la souris sur les différents paramètres envoyés à la méthode Draw() et regardes celui qui est à null.

  5. #5
    Membre averti Avatar de Dalini71
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 181
    Points : 343
    Points
    343
    Par défaut
    Effectivement c'était une erreur de débutants des plus bêtes, l'erreur ne venait pas du SpriteBatch, mais de la texture qui était mal initialisée

    En tout cas merci pour ton aide

    A+ !

  6. #6
    Membre régulier Avatar de LeonardL
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 57
    Points : 71
    Points
    71
    Par défaut
    C'pas une erreur de débutant mais une étourderie qui arrive à tout le monde

    Oublies le tag résolu.

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

Discussions similaires

  1. quelques soucis avec word 2000
    Par ramchou dans le forum Word
    Réponses: 3
    Dernier message: 06/09/2004, 18h13
  2. SOucis avec une reequete imbriquee
    Par Ni4k dans le forum Langage SQL
    Réponses: 6
    Dernier message: 30/03/2004, 08h56
  3. souci avec un algorithme
    Par slider16 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 22/03/2004, 17h17
  4. [DEBUTANT] petits soucis avec un prgm de chat
    Par LechucK dans le forum MFC
    Réponses: 8
    Dernier message: 19/01/2004, 16h52
  5. Réponses: 4
    Dernier message: 16/02/2003, 12h16

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