0

これを行う最善の方法は、XML を使用することだと思います。問題は次のとおりです。

    Hero hero;
    PictureBox heroPB;
    Dictionary <string,Point> pokedex;
    Boss boss;
    PictureBox bossPB;
    Attack attack;
    PictureBox attackPB;
    HPMeter bossHP;
    PictureBox bossHPPB;
    PPMeter heroPP;
    PictureBox heroPPPB;

    System.Timers.Timer animateAttack;
    System.Timers.Timer animateBoss;
    System.Timers.Timer checkHit;
    System.Timers.Timer winFade;
    Thread tr;
    Rectangle bossRect;
    Rectangle attackRect;
    Panel whiteout;

    int heroState = 2;
    int stepRate = 5;
    int attackDirection;
    int attackLoop = 0;
    int contadorPaso = 0;
    int contadorPasoBoss = 0;
    int bossTop, bossLeft;
    int bossState = 6;
    int bossHealth = 0;
    int bossHPCap = 0;
    int opa = 0;
    int battlesWon = 0;
    int mainBossCounter = 0;
    int ppleft = 0;
    bool paso = false;
    bool inStadium = false;
    bool fading = true;
    bool fightingMainBoss = false;
    bool fainted;
    string currentPokemon = "";

    Rectangle[] frames;
    Rectangle[] entrances;
    PictureBox[] boundaries;
    Random r;
    Random eth;

    public delegate void BeginFade();
    BeginFade fade;

常に変化しているオブジェクト/プリミティブがいくつかあります。全体をシリアル化し、次にプログラムを実行するときにロードする効率的な方法はありますか?

4

1 に答える 1

1

このデータを保存する簡単な方法は実際にはありません。個人的には、XMLが最善のルートだとは思いません。それはオブジェクトにとっては良いことであり、他のすべてにとっては悪いことです。唯一のプリミティブをすべて含む「その他」のオブジェクトを使用して、JSONとして記述したいと思います。私は実際、自分で設定ファイルのリーダー/ライターを作成して、csvのようなものを作成する傾向があります。私の職場の構成ファイルのほとんどには、少なくともそれだけのデータが含まれています。key=valueすべてのプリミティブに使用します。各オブジェクトには独自のセクションがあり、プリミティブがkey=valueフォーマットでリストされ、リストは次のようになります。key=value1,value2,value3。個人的には、これは物事を行うためのかなり簡単な方法であり、リーダー/ライタークラスを書くのにそれほど時間はかからないと思います。実際、単純なリーダー/ライターを最初から作成する方が、JSONまたはXMLシリアル化クラスの上に作成するよりもおそらく高速です。ここでは、これらの形式のどちらもあなたに大きなメリットをもたらすとは思いません。

于 2012-12-14T00:42:26.153 に答える