我是一个非常优秀的程序员,我正在为 Xbox 开发类似积木游戏的我的世界。我的游戏中有大约 10000 个块,但是当我在我的 xbox 上运行它时,我遇到了一些非常糟糕的延迟问题。我做的一件事就是在使用它们后将所有对象设置为空,但我仍然遇到问题。大多数游戏开发者是如何解决这个问题的???我想只绘制靠近玩家的方块,但我认为使用循环遍历世界上的所有方块会更慢。
问问题
300 次
1 回答
3
你走在正确的轨道上,如果可能的话,你肯定只想在附近画东西。
四叉树和八叉树是设计用来分别分割 2D/3D 空间的数据结构,使在给定区域中查找对象变得非常容易。听起来这就是你要找的东西。
您可以使用其中任何一种,具体取决于您希望对“附近”的定义是什么。如果您想实现与 Minecraft 相同的效果,那么 Minecraft 所做的是显示整个块列,因此您可以使用四叉树来管理 X/Z 坐标上的事物并始终在 Y 坐标上显示所有内容。如果您想要要对附近进行基于 3D 的定义,那么您需要一个八叉树。
这些工作的方式是使用树形结构对空间进行分区。树中的每个分支代表可用空间的一个象限(或八分圆在八叉树的情况下),并且每个后续分支都是该象限的一个象限。因此,很容易深入到特定区域。树的叶子包含实际数据,即。组成你的世界的方块。
于 2011-09-11T22:17:06.820 回答