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

C# Discussion :

Sérialisation de la classe Game


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14
    Par défaut Sérialisation de la classe Game
    Bonsoir,
    je rencontre actuellement une erreur lors de la sauvegarde de mon projet avec la classe BinaryFormatter.
    Je veux sauvegarder l'état de mon jeu, pour cela j'ai testé sur plusieurs objets de mon projet. Mais en prenant l'objet principal de ma classe principale Game1, j'obtiens un déclenchement d'exception :

    ""Le Type: Microsoft.Xna.Framework.Game' dans l'assembly 'Microsoft.Xna.Framework.Game, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d' n'est pas marqué comme sérialisable.""
    J'ai bien ajouté des attributs [serialisable] sur mes classes et [Nonserializable] sur mes textures et spritefont.

    Le problème viendrai de la classe Game mais je ne vois pas où ajouter l'attribut.

    Merci de me venir en aide,
    CDLT,
    maxous77.

  2. #2
    Membre averti
    Inscrit en
    Août 2004
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 16
    Par défaut
    Ben, tu ajoutes l'attribut à ta classe...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [Serializable()]		
    public class Game{

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14
    Par défaut
    Justement voila ma classe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     [Serializable()]
        public class Game1 : Microsoft.Xna.Framework.Game
        {
         ....
         }
    je veux sérialiser Game1 mais j'ai l'erreur précédente sur Game.

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Par défaut
    oui donc tu rend ta classe Game1 sérialisable, mais Game (papa de Game1) ne l'est pas; il est la ton probleme.

    Je devinne que tu ne peux pas modifier Game, donc il te faut faire un wrapper, une classe qui n'herite pas de Game mais qui la contienne.

    Et à la mano, tu implémente tous les mechanismes pour construire un Game, juste avec des infos sérialisés. A mon avis ca doit représenter pas mal de travail.

    Quel est ton but en fait?

  5. #5
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Ah oui mais non, faut être plus finot que ca!
    C'est pas le jeu qu'il faut sérialiser mais l'état! Quand tu sauvegardes un jeu, y'a pas tout l'executable du jeu qu'est enregistré dans le fichier, juste l'endroit ou tu es, tes munitions, ton argent, les méchants, etc. C'est ces données qu'il faut sérialiser. Ensuite, il faut que tu sois capable de créer une nouvelle instance de Game1 en utilisant les paramètres.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14
    Par défaut
    Merci pour vos réponses.

    Dans ma classe Game2 j'effectue la sérialisation de Game1 en faisant une instance de Game1 qui hérite aussi de Microsoft.Xna.Framework.Game.
    Après je suis bloqué à cette erreur et ne sait que faire.

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

Discussions similaires

  1. [Débutant] Sérialisation d'une classe abstraite
    Par TheYggdrazil dans le forum C#
    Réponses: 2
    Dernier message: 19/09/2012, 17h50
  2. [Débutant] sérialisation de plusieurs classes [C#]
    Par x2thez dans le forum C#
    Réponses: 2
    Dernier message: 05/07/2012, 12h01
  3. Réponses: 0
    Dernier message: 26/07/2011, 23h52
  4. Sérialisation XML et classes externes
    Par darkfrag dans le forum C#
    Réponses: 0
    Dernier message: 24/04/2009, 15h55
  5. Pb Sérialisation d'une classe Héritée
    Par MaelstroeM dans le forum VB.NET
    Réponses: 0
    Dernier message: 13/02/2009, 15h51

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