在视频游戏编程中,单位的状态应该在哪里存储?国家,在一些单位的意义上将有国家“收集资源”,其他人将有国家“战斗”,其他人“走到位置”等。
这些变量应该属于某个单位类吗?看起来似乎如此,但是除了通过迭代所有单位之外,没有什么容易选择具有特定状态的所有单位。
您可以为单元类添加一个枚举,其中包含可以处于的所有状态。
实现状态机,并抽象存储状态的实现细节。让对象按需告诉您当前的状态(例如,作为枚举)。
每隔几千帧迭代几百个游戏对象应该不成问题。游戏引擎通常也具有相当高效的查询机制。