我一直在研究四叉树及其在视频游戏代码中的碰撞检测中的用法。
但是,到目前为止,所有实现都依赖于 C++、C#、javascript 和 Lua 的面向对象特性来完成每个节点,而我完全不知道如何将其转换为原始 C。
目标是针对演员(不断移动)和地形(静态)测试多个对象(镜头)。然后是带地形的演员。由于我找不到可以用“纯”C 术语阅读的示例(即不使用方法或自引用对象),因此我什至无法掌握如何对其进行编码的基本思想,但我确实理解背后的思想算法。我不知道如何设置它,如何引用它,我应该使用什么数据类型,或者任何东西。我对 C++ 一无所知,这使得将其翻译成 C 是不可能的。
同样,我将使用地形贴图,我想做一些高或宽的地图,而不是完美的正方形。四叉树仍然适用于这样的地图吗?
此外,还会有许多移动元素,地形是唯一的静态部分(移动块或门等元素是单独的实体)。如果经常需要更新,是否值得使用四叉树?我什至需要将其设为全局数据吗?(也可以在某些函数内部伪造,然后在启用碰撞时传递)。在这种情况下我需要为它分配内存吗?