我一直在閱讀很多關於實體框架的知識,現在我想在我的遊戲中實現它。實體框架基於使遊戲實體成爲組件的簡單容器,其中組件包含實體的特定特徵(以及描述該特徵的所有變量/訪問器)。 然後通過創建系統模塊化遊戲邏輯。每個系統實現並運行遊戲邏輯的某個方面(例如,碰撞,渲染,動畫)。每個系統必須能夠訪問具有特定組件的每個實體(例如,RenderSystem必須獲得只有具有PositionComponent和AnimationComponent的實體)。實體組件系統框架的最佳數據結構
我的問題是關於實現這種功能的最佳數據結構。
我目前的想法是創建List of Entity的Vector(帶有N個單元格,其中N是可能的組件數量)。因此,無論何時創建(實例化和添加某些組件)實體,我都會從每個列表中爲它包含的每個組件引用此實體。 「殺死」一個實體需要刪除每個列表中的每個引用。問題在於查詢哪些實體必須由某個系統處理,因爲搜索關鍵將是組件的一個組合而不是單個組件,從而增加了操作的開銷(許多搜索和比較必須是完成)。
我的想法很好嗎?有沒有更好的數據結構可以使用?請注意,遊戲中的所有內容都應該是一個實體,在單個關卡上總結數千個Entites(我可能會使用一些空間分區)。
我會使用[訪問者模式](http://www.javaworld.com/article/2077602/learn-java/java-tip-98--reflect-on-the-visitor-design-pattern.html )。 –
爲了達到最好的數據結構?天才! – Narek