首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写Roguelike代码:实体数组物流的帮助

编写Roguelike代码:实体数组物流的帮助
EN

Stack Overflow用户
提问于 2011-03-15 07:13:34
回答 2查看 927关注 0票数 0

目前,我正在编写一个roguelike的代码,并且在我进行的过程中教会自己我需要什么。

我被困在一个问题上,我在这里找到了一些答案:Best way to organize entities in a game?

我需要一个实体树,类如对这个问题的最佳回答所描述的那样。

它提到迭代一个std::设置为运行每个实体的“脚本”--但是留下了一些我需要知道的事情无法解释的地方。

在这样的实现中,如何查找坐标(类中的)?我怀疑它比运行一个遍历所有东西的For要容易,直到找到匹配的结果.

  1. 如何处理处于同一位置的多个事物(项目堆栈等)?我知道可以有一个类的多个实例包含相同的和弦,但是在这种情况下查找会得到什么结果呢?
  2. 是否有方法来迭代,例如,实体的“速度”属性的降序?

谢谢~

EN

回答 2

Stack Overflow用户

发布于 2011-03-15 07:40:12

正如您所说的,最好的方法是拥有一个实体的“全局”数组(尽管请将它们封装在一个处理程序类中,否则您可能最终会想杀死自己:p)

有一个基本的类型实体,从那些像板条箱和敌人之类的东西中衍生出不同的东西,也许不同的类来自那些专门处理不同类型的类(比如格鲁和蝙蝠可能有独立的类?)这可以转化成很多不同的类,所以最好的方法是每个对象都有参数(比如敌人会有生命、伤害、速度等)。

将它们存储在同一个数组中,并具有一个虚拟更新函数,您可以在每个帧中调用这些函数,

票数 0
EN

Stack Overflow用户

发布于 2011-03-15 09:22:57

您将通过指针操作实体,因此在多个容器中放置单个实体没有问题。因此,对于1)矩阵>级别;(其中矩阵是一个简单的二维数组,您自己实现),这也处理一个给定位置的多个元素。而levelrow行将返回对std::vector的引用。(实际上,我可能会用一个非常简单的接口将std::向量包装在一个自定义类中,比如EntityList。这让我对未来的选择敞开大门。)

对于3,最简单的解决方案是将列表复制到本地EntityList中,并根据您想要的任何条件对其进行排序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5308569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档