new C#er here. I'm making a console based RPG. It's coming along quite well, but I need to find out how to save the game. I would guess that there is a way to save variables from my app into a text file that can be used to load the variables when the application is run again. Unfortunately I have no idea where to start.
Also I need a way to go to a point in the code when loading a save file.
Some of my variables include:
int xCoordinate, yCoordinate, hp, hpmax, level;
Any sample code would be greatly appreciated.
It is simple to write some variables to a text file:
TextWriter tw = new StreamWriter("SavedGame.txt");
// write lines of text to the file
tw.WriteLine(xCoordinate);
tw.WriteLine(yCoordinate);
// close the stream
tw.Close();
And read them back in:
// 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();
You can use binary serialization to accomplish this fairly easily. First, create a class containing all the variables you want to write:
[Serializable]
class Data
{
int x;
int y;
}
Then use it as follows:
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);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With