基于另一个关于ECS(Entity-Component-System架构)的问题,我疑惑了如何描述我所做的内容。作为一名设计师而不是程序员,我渴望知道如何与他人使用正确的术语相互沟通。

我正在使用Phaser JS,但在其上搭建了一个伪3D框架。我使用JavaScript。

我的结构是Phaser场景,它处理什么更新、获取和处理输入和绘制。

我有层文件,它们包含每层的所有代码和模型的引用——有点类似于预置件。

模型是一个类,它主要持有所有3D数据、纹理数据和在空间中移动的所有函数,另外也可以持有自定义数据(自定义函数如门开启、对话文件等)。

然后,在场景中有一个几何学管理器,它取所有模型,过滤什么要绘制和更新,并画出它们。

所以,我有点类似于使用组件,其他组件重用这些组件。层 > (模型组) > 模型(+转换) > 精灵

但这也只是类。它是面向对象设计吗?

例如:

- 一个门是一个模型,其转换、打开和关闭的函数、碰撞盒、纹理 quad 和指向层(或实际上是层指向门)的引用。

- 玩家没有模型,但只有一个转换,可以通过转换来检测碰撞并与层关联,有几个fps精灵作为“身体”。

在框架中,所有的组件都无法单独工作,但每个组件都有有用数据,如果AI使用它,就会在这里或在另一个引擎中有所作为。