0
In EntityX EntityManager
有一个方法entities_with_components
返回所有具有所需组件的实体。在Emitting EventsEntityX框架entities_with_components性能
的例子,我看到那个方法的双重用途:
for (Entity left_entity : es.entities_with_components(left_position)) {
for (Entity right_entity : es.entities_with_components(right_position)) {
是它的性能有效或将查询找到合适的实体两次?
谢谢亚历克。我的问题不是关于迭代,而是关于如何知道具有适当组件的实体是什么。我问询问。每次我调用'entities_with_components'时,每个系统都有一个实体的静态列表,框架寻找这样的实体。 – Narek 2015-04-03 12:31:35
啊。这是不明确的。每个组件都存储在一个向量中。每个实体只是组件向量的索引,以及指定实体分配了哪些组件的位掩码。 – 2015-04-03 23:04:22
亚历克,仍然没有回答我的问题。 'entities_with_components'方法如何选择实体?它是否找到位置组件的向量,并且每个组件都查看它映射到的实体。而且在每个调用中它都一样吗?例如,在Artemis中,每个系统都有一个成员变量,用于存储其活动实体,并且每次都不进行查找。它只是调用'processEntites'并将'active'实体传递给该方法,这比查找每个实体都要高效。 – Narek 2015-04-04 05:40:53