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