全局变量。接近这个项目的最佳方式

时间:2011-08-08 22:12:08

标签: vb.net

我正在构建一个游戏,其中玩家在13个区域之一之间移动 - 我将其定义为全局变量“gsCurrentlyIn” - 每一轮传递该区域的某些统计信息(例如“Region1”)需要更新 - 其中我还定义了全局变量(例如人口的“giRegion1Pop”,人气的“giRegion1PlayerPercent”)等。

现在问题是如何传递玩家当前所在位置的值来更新该区域的适当命名的全局变量。

所以我们有:

gsCurrentlyIn = "Region1"

但是我们无法构建要调用的正确全局变量的名称,因为它将是一个字符串而不是变量的实际名称。

"gi" + gsCurrentlyIn + "Pop" = 4 wont work.

有没有更好的方法来解决这个问题,而不是我正在做的100多个全局变量方式呢?

我可以为每个变量设置大量的if / then或case语句 - 再次看起来不对。

有些人建议反思,但我发现它太混乱了。如果这是唯一的方式,也许有人可以为我愚蠢。但我发现很难相信这很复杂。

2 个答案:

答案 0 :(得分:0)

使用数组或集合/词典而不是所有不同的变量。当前区域不是指向数组中正确索引的数字

答案 1 :(得分:0)

绝对不要使用多维数组。使用您跟踪的每个属性的属性构建:人口,受欢迎程度等。然后使用集合(即:List(Of T))或用于为每个区域保存类的实例的数组。