我意识到这个问题不是很清楚,所以我会扩展我的意思(如果有人能想到更好的措辞方式,那将不胜感激)。
我有一个特定的类类型(属性),另一个类(角色)的任何实例都需要几个(例如,如果游戏中有力量、智力和运气,那么每个角色将需要属性类的 3 个实例) .
每个属性的信息都存储在 AttributesList.txt 中。
是否最好在程序开始时读取一次这个文件来创建一个全局const vector<Attributes>
并让每个 Character 创建一个 vector 的拷贝,只要它们存在就供自己使用,或者在每次创建 Character 时读取文件以创建其属性?
注意:为每个属性创建一个实例并在需要时使用指针引用它不是一种选择,因为每个角色的属性都有不同的值。
最佳答案
在这种情况下,您应该评估“什么更容易编码?”之间的权衡。 vs “它真的会有所作为吗?”。
一方面,由于 I/O 通常“缓慢”(与内存访问相比)并且是错误/异常的来源,因此在游戏开始时读取一次是个不错的主意。
但是,如果编码更容易并且 AttributesList.txt 文件损坏的风险很小,并且不会产生任何可衡量的性能问题,则每次您的字符类实例可能工作时重新读取文件以及。多久创建一个新角色?
当我在游戏工作室工作时,我们将编译后的对象资源保存(序列化)在磁盘上。每次创建新游戏对象时,我们都会从文件中重新读取结构。我认为我们将此作为主游戏/渲染线程的异步任务来执行,因此不会影响性能。
关于c++ - 每次需要其中一个类的实例时,拥有一组类的额外拷贝或从文件中读取是否会占用更多内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28016346/