亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我應該使用靜態類來存儲數據嗎?

我應該使用靜態類來存儲數據嗎?

C#
慕碼人8056858 2021-12-05 17:06:50
我真的很難為我的 rpg 游戲存儲和訪問數據?,F在我需要存儲一些經常訪問并且應該是全局的常量。我所做的是創建一個包含所有常量的靜態類。public static class IndexOf{    public class Element    {        // Element ids in sprite array.        public const int Water = 0;        public const int Lava = 1;        public const int Ice = 2;    }    public class Nature    {        // Nature (placed on tile)        public const int Rock = 0;        public const int Bush = 1;    }    public class Biome    {        //Biomes ids.        public const int Mountain = 0;        public const int River = 1;    }}但是,有沒有更好的方法來做到這一點,或者這是一個很好的解決方案?
查看完整描述

3 回答

?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

我認為更好的(代碼將更具可讀性和可維護性)選擇是切換到enum:


  public enum Element {

    Water = 0,

    Lava = 1,

    Ice = 2, 

  };


  public enum Nature {

    Rock = 0,

    Bush = 1,

  };


  public enum Biome {

    Moutain = 0,

    River = 1,

  };

等enum是

  1. 更具可讀性enum專為保存常量而設計)

  2. 打字,所以你永遠不會int biome = Nature.Rock;因為Biome biome = Nature.Rock;不編譯而犯錯誤。

  3. 更容易被修改(添加新項目,說SandNature


查看完整回答
反對 回復 2021-12-05
?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

您是否考慮過將常量轉換為枚舉?


public enum Element

{

    // Element ids in sprite array.

    Water,

    Lava,

    Ice

}


public enum Nature

{

    // Nature (placed on tile)

    Rock,

    Bush

}


public enum Biome

{

    //Biomes ids.

    Mountain,

    River

}

然后,您可以訪問的元素與任何枚舉(Element.Water,Biome.River,等)。


查看完整回答
反對 回復 2021-12-05
?
浮云間

TA貢獻1829條經驗 獲得超4個贊

我在另一個 StackExchange 站點上提出了一個非常相似的問題,關于在我的游戲中存儲數據的最佳方法是什么。那里有一個非常詳細的答案,但簡而言之,這里是您在游戲中存儲數據的選項:

  • 靜態腳本

  • 一個保存數據的游戲對象

  • 播放器首選項

  • 單例模式

很大程度上取決于您想如何管理您的數據,如果您想留在場景之間,您想多久讀取一次數據或其他因素。

沒有一種黃金解決方案。您必須分析用例,然后選擇最適合您的選項。


查看完整回答
反對 回復 2021-12-05
  • 3 回答
  • 0 關注
  • 333 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號