2012-11-26 2 views
0

Je travaille sur un jeu Windows Phone 7 et j'ai enregistré les niveaux dans un fichier texte et je veux le charger dans un tableau 2D mais il n'y a pas d'importateur de contenu pour les fichiers txt , je l'ai utilisé le gestionnaire de stockage isoléwindows phone, niveau de lecture du fichier txt

protected void read_lvl() 
    { 
     IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication(); 
     IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile("myFile.txt", FileMode.Open, FileAccess.Read); 
     using (StreamReader reader = new StreamReader(fileStream)) 
     { //Visualize the text data in a TextBlock text 

      while (!reader.EndOfStream) 
      { 
       //for each row 
       for (int i = 0; i < rows; i++) 
       { 
        //read in the line 
        string myLine = reader.ReadLine(); 
        //take out the commas 
        string[] row = myLine.Split(','); 

        //convert to string to ints 
        //and feed back into array 
        int[] nRow = new int[row.Length]; 
        for(int r=0; r<columns;r++){ 
         nRow[r] =Convert.ToInt32(row[r]); 
         myreadArray[i, r] = nRow[r]; 
        } 

       } 
      } 

     } 
    } 

ce qui est très bien pour le chargement d'un état de jeu sauvé etc Mais je veux avoir plusieurs niveaux dans plusieurs .txt fichiers et ont essayé d'utiliser cette place:

 //stream from file 
     Stream stream = TitleContainer.OpenStream("myFile.txt"); 
     //make a stream reader from the stream 
     using (StreamReader sreader = new StreamReader(stream)) 

Mais il lance la même erreur: le Il n'y a pas d'importateurs qui gèrent ce type de fichier.

quoi faire?

Répondre

0

Je ne sais pas si cela va vous aider, mais voilà comment je charger des cartes de jeu dans mon jeu (x et y sont les coordonnées de mon réseau):

var assembly = System.Reflection.Assembly.GetExecutingAssembly(); 
var stream = assembly.GetManifestResourceStream("View.Maps.Breakout_" + _breakoutSelection + ".txt"); 

using (var streamReader = new StreamReader(stream)) 
{ 
    int y = 0; 

    while (!streamReader.EndOfStream) 
    { 
     string data = streamReader.ReadLine(); 

     int x = 0; 

     foreach (var mapSquare in data) 
     { code here } 
    } 
} 
0

Vous devriez pouvoir ajouter le fichier, définissez le « Copier si plus récent » « Build action » à « None », et réglez « Copier sur Output Directory » pour et le charger en utilisant

XDocument.Load(TitleContainer.OpenStream(@"path-to-file.txt")); 

comme montré here.

Espérons que cela aide!

+0

où sera ce enregistrez-le? Ou dois-je le mettre dans un niveau de var Aussi c'est pour les fichiers xml, comment cela fonctionnera avec un fichier .txt Je veux le lire dans un tableau 2D –

+0

Même chose. Construire le projet le mettra dans le XAP dans le même répertoire que dans l'explorateur de solution (par rapport à la racine). Pour ce faire, renommez le fichier XAP en zip et ouvrez-le pour voir où il se trouve. – Ani

+0

Notez également que TitleContainer.OpenStream renvoie un flux - vous pouvez le traiter à l'aide d'un StreamReader et faire ce que vous voulez avec le contenu. – Ani

1

vous pouvez le faire avec un stockage isolé uniquement en changeant le nom du fichier "myfile1.txt" et changez l'attribut FileMode.OpenOrCreate si vous ne l'avez pas déjà.

Questions connexes