問題タブ [entity-component-system]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
854 参照

game-engine - ECS (エンティティ コンポーネント システム) では、コンポーネント マネージャーとシステムの違いは何ですか?

私はECSを理解しようとしています。したがって、コンポーネントは単なるデータであり、一部のマネージャーはこれらのコンポーネントをコンテナーに保持し、それらすべてをループしてこのデータに基づいて動作し、それらを「更新」します。

このマネージャーは人々が「コンポーネントマネージャー」と呼んでいるものですか、それとも「システム」ですか? それとも同じ意味ですか?そうでない場合、コンポーネントマネージャーとシステムは何をしますか?

0 投票する
1 に答える
176 参照

c++ - C++ で仮想関数を呼び出すときのセグメンテーション違反

現在、ゲーム エンジン用に C++ で ECS に取り組んでいます。2 つの仮想関数を持ちinit()update()派生構造体に実装されている基本システム構造体があります。テンプレートを使用する関数addSystem()removeSystem()関数があり、一連のSystem*システムがあります。それらを呼び出そうとすると、セグメンテーション違反が発生します。

システム:

addSystem():

removeSystem():

System* からの仮想関数の呼び出し:

さらに情報が必要な場合はお尋ねください。

編集: sizefor ループでは 1 に等しく、systems[i] は有効なポインターです。私もテストp systems[i]->updateしましたが、有効なアドレスもあります。問題は呼び出し中です。