如何解决我应该在哪里存储项目常量定义/声明
我有一个项目,例如游戏应用程序。我在那里有很多课。那么,我应该在哪里存储游戏参数的初始变量声明/定义?
例如,我有一个“平面”,它具有初始参数 speed
、height
、e.t.c.
游戏开始后,这个参数以某种方式取决于游戏进程,并且改变时间参数我也应该存储在某个文件中。
其他类的情况相同,例如初始 score
/fuel
/health
...
还有一些 constexpr
参数,例如每秒增加的分数。
那么,我应该在哪里存储所有这些参数?我对此有一些想法:
namespace WINDOW_ParaM {
static const unsigned int WIDTH = 1000;
static const unsigned int HEIGHT = 1000;
}
namespace PLANE_ParaM {
static const char *TEXTURE_PATH = "../example.png";
}
那么我的编译时间就会过长。那是因为有些类包含这个文件,如果我测试了最佳参数,我会修改它,它会太长。
- 另一种方式 - 创建配置文件并以某种方式从中解析。这会减少编译时间并易于修改,但在架构案例中似乎很难,因为会有很多依赖项。
- 只需在每个类中声明每个常量。 - 修改时间太长,因为我应该打开
Plane.h
- 修改,然后Window.h
.. e.t.c
大型项目游戏如何解决这个问题(这意味着他们正在测试/开发 - 应该减少构建并保持简单的架构)?像下面的答案一样使用 extern
是一个好习惯吗?
解决方法
您可以在标头中将变量声明为 extern
,并有一个包含实际值的 .cpp
。
参数.h
namespace WINDOW_PARAM {
extern const unsigned int WIDTH;
extern const unsigned int HEIGHT;
}
namespace PLANE_PARAM {
extern const char *TEXTURE_PATH;
}
参数.cpp
namespace WINDOW_PARAM {
const unsigned int WIDTH = 1000;
const unsigned int HEIGHT = 1000;
}
namespace PLANE_PARAM {
const char *TEXTURE_PATH = "../example.png";
}
现在您可以在任何地方#include "Parameters.h"
。更改 Parameters.cpp
中的值只会重新编译该文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。