Artemis ECS中位数据背后的目的

lam*_*bda 0 java components entity system artemis

什么是背后的目的bit在成员Component Type,以及TypeBitSystemBit成员在Entity为阿蒂米斯ECS?

这些是Artemis ECS的git存储库的一些屏幕截图,它们引用ComponentTypeEntity:

对于 ComponentType

对于<code>Entity</code>
<img rel=

是git的链接.

Nam*_*mek 5

在addComponent函数中查看https://github.com/gemserk/artemis/blob/master/src/com/artemis/EntityManager.java.它叫

e.addTypeBit(type.getBit());
Run Code Online (Sandbox Code Playgroud)

同时removeComponent()调用:

e.removeTypeBit(type.getBit());
Run Code Online (Sandbox Code Playgroud)

所以它只是实体内部组件的id.另一个id用于收集EntityManager中的组件类型.

无论如何,这是一个有点旧的实现.看一下名为artemis-odb的分叉,它的性能更高,并且积极开发.ComponentType也被重构.