我应该怎么有我的游戏实体知识渊博的身边的东西呢?(How should I have my game

2019-07-30 01:55发布

我在游戏中的每个敌人类型是不同的类,和实例存储在C数组。 在游戏主循环更新()运行对每个敌人/项实例,并画出()运行。 一些更新的()命令要求的,其中主要球员是知识。 什么是获得这些信息的情况下的最佳途径? 我不认为一个全局变量是做聪明的方式,因为多人游戏选项可以在以后添加。

这仅仅是更大的问题,这是在比赛中事情应该如何了解对方的一个例子。 敌人怎么会知道他们正在与其他敌人,例如碰撞。

Answer 1:

你需要建立一个多分支的树型结构(不是简单的二进制树)。 该节点是在游戏中的位置。 每个节点可以包含多个简单的钢结构制品/对象的指针(取决于你的编程语言)。 由于各地的游戏玩家移动你移动你的球员位置指针表示位置的树节点。 当您启动游戏这棵树类型stucture与东西回暖,怪物等随机种子填充,也可以使用各地分散的怪物。

这有助于游戏的速度,你只需要从您当前的位置/节点搜索当前节点和节点一步之遥。 任何程序引发了怪物进退只是怪物指针移动到下一个节点或多个节点。 如果一个配有包被使用,则它的指示器与房间/节点,这是在破坏。

祝好运



Answer 2:

使查了一下更有效的一种方法是分裂的实体被更新成四叉树。 树将根据在屏幕上或在游戏世界里,你已经设置的位置获得分成。 这样,您就可以通过实体设定,让只有附近得到更新。 因此,例如,如果你正在做打的检测,你可以完全忽略大集团。

四树

希望帮助



Answer 3:

A控制器实体?

你需要仔细地考虑使用普通的数组认为,通过大型阵列线性搜索可能会非常耗时搜索之类的冲突。



Answer 4:

游戏中的所有实体,包括球员,应该是在同一容器中。 通过他们你的AI将循环每一帧和调用一些功能,执行每一个实体的所有目标。

实体(如播放器)必须通过相同的容器访问所有其他实体。

你必须弄巧对容器进行到容器高效的实体访问,但是。



文章来源: How should I have my game entities knowledgeable of the things around them?