Foros - Stratos

Stratos => XNA => Mensaje iniciado por: Hans en 30 de Septiembre de 2010, 05:42:10 PM

Título: ¿Dónde anda Microsoft.Xna.Framework.Storage?
Publicado por: Hans en 30 de Septiembre de 2010, 05:42:10 PM
Lo digo porque según la documentación está dentro de XNA Game Studio 4.0 pero no encuentro la referencia y por supuesto no puedo usarlo. ¿Alguna idea?
Título: Re: ¿Dónde anda Microsoft.Xna.Framework.Storage?
Publicado por: Vicente en 30 de Septiembre de 2010, 09:53:04 PM
Yo la tengo en:

C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Storage.dll (la de Xbox pues en Xbox).

Al crear un proyecto está añadida por defecto...
Título: Re: ¿Dónde anda Microsoft.Xna.Framework.Storage?
Publicado por: Hans en 01 de Octubre de 2010, 12:25:55 PM
Vale, no me salía porque no existe nada parecido en Windows Phone y estaba con ese target seleccionado. ¿Entonces en Phone cómo se guarda partida? Porque imagino que habrá que hacer lo mismo que en el otro y abrir un fichero, ¿pero de dónde?


edit.- Buscando por ahí hablan de System.IO.IsolatedStorage IsolatedStorageFile, no sé si tendrá mucho que ver.
Título: Re: ¿Dónde anda Microsoft.Xna.Framework.Storage?
Publicado por: Vicente en 02 de Octubre de 2010, 06:43:27 PM
Sip, tienes que usar eso, es la misma API que también usan en Silverlight.
Título: Re: ¿Dónde anda Microsoft.Xna.Framework.Storage?
Publicado por: Hans en 04 de Octubre de 2010, 04:08:46 PM
A ver si alguien sabe qué estoy haciendo mal. Básicamente estoy cargando una variable, incrementando su valor en 10 y guardando, de tal manera que en teoría cada nueva carga el valor será +10. LoadSaves para cargar el valor y SaveSaves para guardar.

private void LoadSaves()
       {
           IsolatedStorageFile storageFile = GetIsolatedStore();
           IsolatedStorageFileStream storageFileStream = new IsolatedStorageFileStream(dBase.saveFileName, System.IO.FileMode.OpenOrCreate, storageFile);

           if (storageFileStream.Length > 0)
           {
               BinaryReader reader = new BinaryReader(storageFileStream);

               dBase.valor = reader.ReadInt32();
           }
           storageFileStream.Close();

           dBase.valor += 10;
       }



private void SaveSaves()
       {
           IsolatedStorageFile storageFile = GetIsolatedStore();
           IsolatedStorageFileStream storageFileStream = new IsolatedStorageFileStream(dBase.saveFileName, System.IO.FileMode.Open, storageFile);

           if (storageFileStream.Length > 0)
           {
               BinaryWriter writer = new BinaryWriter(storageFileStream);

               writer.Write(dBase.valor);
           }
           storageFileStream.Close();
       }




Petar no peta pero el valor es 10 siempre.



edit.- Vale, sobraba "/if (storageFileStream.Length > 0)" en saveSaves. ¿Si no he guardado nada nunca cómo va a tener tamaño? xDDD