目前,我正在编写一个roguelike的代码,并且在我进行的过程中教会自己我需要什么。
我被困在一个问题上,我在这里找到了一些答案:Best way to organize entities in a game?
我需要一个实体树,类如对这个问题的最佳回答所描述的那样。
它提到迭代一个std::设置为运行每个实体的“脚本”--但是留下了一些我需要知道的事情无法解释的地方。
在这样的实现中,如何查找坐标(类中的)?我怀疑它比运行一个遍历所有东西的For要容易,直到找到匹配的结果.
。
谢谢~
发布于 2011-03-15 07:40:12
正如您所说的,最好的方法是拥有一个实体的“全局”数组(尽管请将它们封装在一个处理程序类中,否则您可能最终会想杀死自己:p)
有一个基本的类型实体,从那些像板条箱和敌人之类的东西中衍生出不同的东西,也许不同的类来自那些专门处理不同类型的类(比如格鲁和蝙蝠可能有独立的类?)这可以转化成很多不同的类,所以最好的方法是每个对象都有参数(比如敌人会有生命、伤害、速度等)。
将它们存储在同一个数组中,并具有一个虚拟更新函数,您可以在每个帧中调用这些函数,
发布于 2011-03-15 09:22:57
您将通过指针操作实体,因此在多个容器中放置单个实体没有问题。因此,对于1)矩阵>级别;(其中矩阵是一个简单的二维数组,您自己实现),这也处理一个给定位置的多个元素。而levelrow行将返回对std::vector的引用。(实际上,我可能会用一个非常简单的接口将std::向量包装在一个自定义类中,比如EntityList。这让我对未来的选择敞开大门。)
对于3,最简单的解决方案是将列表复制到本地EntityList中,并根据您想要的任何条件对其进行排序。
https://stackoverflow.com/questions/5308569
复制相似问题