Назначение битовых данных в Artemis ECS
Какова цель позади bit
член в Component Type
и TypeBit
а также SystemBit
члены в Entity
для Артемиды ECS?
Вот некоторые снимки экрана для репозитория Git Artemis ECS, которые относятся к ComponentType
а также Entity
:
За ComponentType
ComponentType code>
За Entity
Entity code>
Вот ссылка на мерзавца.
1 ответ
Загляните в https://github.com/gemserk/artemis/blob/master/src/com/artemis/EntityManager.java- функцию addComponent. Это вызывает
e.addTypeBit(type.getBit());
Также removeComponent() вызывает:
e.removeTypeBit(type.getBit());
Так что это просто идентификатор для компонента внутри сущности. Другой идентификатор предназначен для сбора типов компонентов в EntityManager.
Во всяком случае, это немного старая реализация. Взгляните на форк под названием artemis-odb, который обладает большей производительностью и активно развивается. ComponentType также подвергается рефакторингу.