我应该使用静态类来存储数据吗?

我真的很难为我的 rpg 游戏存储和访问数据。


现在我需要存储一些经常访问并且应该是全局的常量。我所做的是创建一个包含所有常量的静态类。


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;

    }

}

但是,有没有更好的方法来做到这一点,或者这是一个很好的解决方案?


慕码人8056858
浏览 260回答 3
3回答

犯罪嫌疑人X

我认为更好的(代码将更具可读性和可维护性)选择是切换到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是更具可读性(enum专为保存常量而设计)打字,所以你永远不会int biome = Nature.Rock;因为Biome biome = Nature.Rock;不编译而犯错误。更容易被修改(添加新项目,说Sand来Nature)

Cats萌萌

您是否考虑过将常量转换为枚举?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,等)。

浮云间

我在另一个 StackExchange 站点上提出了一个非常相似的问题,关于在我的游戏中存储数据的最佳方法是什么。那里有一个非常详细的答案,但简而言之,这里是您在游戏中存储数据的选项:静态脚本一个保存数据的游戏对象播放器首选项单例模式很大程度上取决于您想如何管理您的数据,如果您想留在场景之间,您想多久读取一次数据或其他因素。没有一种黄金解决方案。您必须分析用例,然后选择最适合您的选项。
打开App,查看更多内容
随时随地看视频慕课网APP