2010-07-15 7 views
0

J'écris un jeu dans XNA. Le premier objectif principal est de le faire fonctionner sous Windows, mais après cela je vais acheter le kit 360 et changer tous les bits que j'ai besoin de changer pour en faire un jeu de travail sur 360.Enregistrement des données de niveau dans XNA

Je suis Je suis actuellement en train d'écrire un éditeur de niveau que j'utiliserai pour créer les niveaux mais aussi en laissant une fonctionnalité utilisateur. Je me demandais quel serait le meilleur/le plus commun/le plus simple pour sauvegarder les données et où devrais-je les sauvegarder?

+0

Soyez prudent lorsque vous portez sur le 360. Garbage Collection est radicalement différente sur cette plate-forme .. –

Répondre

3

Niveau Format

En ce qui concerne le format que vous enregistrez les données, c'est à vous. Si vous pouvez représenter vos données de niveau comme du texte plat, peut-être une série de lignes et de chiffres, allez-y. De nombreux éditeurs de niveau représentent les données de niveau à l'aide d'une classe/struct ou XML personnalisée.

Préparation de l'enregistrement

Si les données texte ou XML plat alors votre travail est facile, il n'y a pas de préparation-travail à faire. Si les données sont contenues dans une classe/struct, vous devrez d'abord sérialiser les données avant de les écrire dans le stockage. La sérialisation facilite fondamentalement la persistance des données dans votre classe en convertissant votre classe en un format facile à écrire dans le stockage (la désérialisation va dans l'autre sens).

La sérialisation est souvent effectuée avec la classe XMLSerializer. Pour un exemple simple, vous pouvez voir le MSN example où ils montrent comment sauvegarder/charger les données de jeu.

Remarque: Certaines personnes n'aiment pas la sérialisation au format XML car elles exposent leurs données à des regards indiscrets. Pour un éditeur de niveau, c'est probablement un non-problème et peut-être même souhaitable.

Enregistrement des données

L'examen final est la méthode utilisée pour enregistrer les données. Sur le PC, vous pouvez écrire des données à n'importe quel endroit en utilisant des bibliothèques .NET standard, mais ce n'est pas le cas sur la 360. Si vous avez joué à beaucoup de 360 ​​jeux, vous savez que chaque jeu ouvre une boîte de dialogue quel périphérique de stockage utiliser. Vous devrez utiliser les mêmes classes que les autres jeux 360, à savoir la classe XNA StorageContainer. Microsoft a quelques bons exemples here qui devrait vous aider. Comme vous prévoyez de laisser votre éditeur de niveau en mode utilisateur, je vous recommande d'utiliser les bibliothèques XNA (Guide.BeginShowStorageDeviceSelector, StorageContainer) pour implémenter votre sauvegarde/chargement des données de niveau pour le PC et la 360. Cette est juste pour éviter d'avoir à écrire séparément sauvegarder/charger le code pour le PC et 360.

2

Je suggère d'utiliser le Microsoft.Xna.Framework.Storage Namespace. Le principal avantage étant que cette direction fonctionnerait lors du portage vers la xbox360 avec peu ou pas de changements dans la logique de sauvegarde de l'information.

Questions connexes