ゲームデータをシリアル化しようとしています。ユーザーがWindowsボタンを押した場合は、すべてを保存する必要があります。私は、ゲームクラスのOnExitingイベントをオーバーライドする必要があることを知っています。 Game State Managementを使用していますので、GamePlayScreenクラスでゲームデータをシリアル化したいと思います。私はSerializeメソッドとDeSerializeメソッドをオーバーライドしましたが、それらは動作しませんでした。 WindowsのGameStateManagmentによるデータのシリアル化
彼女に私のコード:public override void Serialize(Stream stream)
{
gameState.HumanPlayer = HumanPlayer;
gameState.Player1 = AIPlayer1;
gameState.Player2 = AIPlayer2;
gameState.Player3 = AIPlayer3;
XmlSerializer serializer = new XmlSerializer(typeof(GameState));
serializer.Serialize(stream, gameState);
base.Serialize(stream);
}
public override void Deserialize(Stream stream)
{
XmlSerializer serializer = new XmlSerializer(typeof(GameState));
gameState = (GameState)serializer.Deserialize(stream);
if (gameState.HumanPlayer != null)
HumanPlayer = gameState.HumanPlayer;
if (gameState.Player1 != null)
AIPlayer1 = gameState.Player1;
if (gameState.Player2 != null)
AIPlayer2 = gameState.Player2;
if (gameState.Player3 != null)
AIPlayer3 = gameState.Player3;
base.Deserialize(stream);
}
は、私は自分のIsolatedStorageFileの代わりに提供ストリームオブジェクトを作成しようとしましたが、それは仕事をdidntの。
LoadとUnloadイベントで同じコードを書き込もうとしました。そこではうまく動作しますが、戻るボタンを押した場合にはうまくいきます。ユーザーがWindowsボタンまたは検索ボタンを押した場合は、シリアル化する必要があります。
ありがとうございます!不思議なことに、私は私の窓を再起動した後に働いた!私は、エミュレータといくつかの問題を考える、ありがとう! – Ateik