小编shm*_*eps的帖子

实施CVAR系统

我想实现我所知道的CVAR系统,我不完全确定它的正式名称(如果有的话).

它本质上是一些程序和视频游戏中使用的系统,用户可以拉下控制台并输入命令,例如"变量500"将该变量设置为500.可以在任何半条命游戏中找到此实例,Doom和Quake游戏等等.一般的想法似乎是隐藏底层架构,但仍允许受保护的访问,例如,人们可能能够查看重力的值,但不能更改它.这些值中的一些也可以是函数,例如,用户可能能够输入"创建"以在其位置或指定的某个其他位置创建敌人类型.

通过Half Life 2 SDK,以及我在GoldSrc SDK上记得的内容,看起来他们至少实现了"标记"类别,其中某些命令只能在某些条件下工作,例如,如果设置了其他值,或者如果用户具有某种权限级别.

我最初的想法是创建一个Dictionary或类似的对象,并使用它来将字符串值绑定到函数委托,以及保持"保护"级别的排序,以限制某些命令的使用.但是,这看起来相当麻烦,因为我认为我必须通过手动为我想要实现的每个值或函数添加一个新条目.我也不知道这是否会给我我正在寻找的控制水平.

我理所当然地认为我想要的是一个CVAR System类,以及一个可以接受它的Register函数,一个变量/函数委托,一个访问它的字符串,以及我需要的任何保护级别.这样我可以添加我需要的东西,因为我看到它们,所以一切都仍然在它的相关类和文件中.

我真的只是在寻找一些想法,所以我的问题是:

  • 有没有人曾经做过这样的事情,如果有的话,怎么样?
  • 我的实施会有效吗?(从理论上讲,如果没有,你能想到一个更好的方法吗?)
  • 如果某人对前面提到的一个标题如何做得更有知识,你能详细说明一下吗?似乎很难找到关于它们的文档.

我并不是在寻找具体的代码,只是更多的结构化设计.而且它不一定是"商业"或工作就像另一个,我只需要一些东西让我去.

c# xna game-engine

8
推荐指数
1
解决办法
1130
查看次数

标签 统计

c# ×1

game-engine ×1

xna ×1