4

ここに新しいC#er。私はコンソールベースのRPGを作っています。順調に進んでいますが、ゲームを保存する方法を見つける必要があります。アプリの変数をテキストファイルに保存して、アプリケーションの再実行時に変数を読み込むために使用できる方法があると思います。残念ながら、どこから始めればよいのかわかりません。

また、保存ファイルをロードするときにコード内のポイントに移動する方法が必要です。

私の変数のいくつかは次のとおりです。

int xCoordinate, yCoordinate, hp, hpmax, level;

サンプルコードをいただければ幸いです。

4

4 に答える 4

6

いくつかの変数をテキスト ファイルに書き込むのは簡単です。

TextWriter tw = new StreamWriter("SavedGame.txt");

// write lines of text to the file
tw.WriteLine(xCoordinate);
tw.WriteLine(yCoordinate);

// close the stream     
tw.Close();

そしてそれらを読み返します:

// create reader & open file
TextReader tr = new StreamReader("SavedGame.txt");

// read lines of text
string xCoordString = tr.ReadLine();
string yCoordString = tr.ReadLine();

//Convert the strings to int
xCoordinate = Convert.ToInt32(xCoordString);
yCoordinate = Convert.ToInt32(yCoordString);

// close the stream
tr.Close();
于 2013-03-07T18:31:23.500 に答える
2

変数をXMLファイルに保存し、次回の起動時、つまりシリアル化と呼ばれるプロセスでそれらをロードできます。 XMLファイルとの間でほとんどすべてのc#オブジェクト(リストを含むが辞書は含まない)をシリアル化および逆シリアル化できるヘルパークラスについては、ここを参照してください。

次のコンソールアプリケーションに送信する値が少ない場合は、コマンドラインパラメーターまたはパイプを使用できます。

于 2013-03-07T18:25:14.947 に答える
2

バイナリ シリアル化を使用すると、これをかなり簡単に実現できます。まず、書きたいすべての変数を含むクラスを作成します。

[Serializable]
class Data
{
    int x;
    int y;
}

次に、次のように使用します。

Data data = new Data();

//Set variables inside data here...

// Save data
BinaryFormatter formatter = new BinaryFormatter();
using (FileStream stream = File.OpenWrite("C:\\Temp\\bin.bin"))
{
    formatter.Serialize(stream, data);
}
于 2013-03-07T18:29:25.187 に答える