問題タブ [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.
game-engine - ECS (エンティティ コンポーネント システム) では、コンポーネント マネージャーとシステムの違いは何ですか?
私はECSを理解しようとしています。したがって、コンポーネントは単なるデータであり、一部のマネージャーはこれらのコンポーネントをコンテナーに保持し、それらすべてをループしてこのデータに基づいて動作し、それらを「更新」します。
このマネージャーは人々が「コンポーネントマネージャー」と呼んでいるものですか、それとも「システム」ですか? それとも同じ意味ですか?そうでない場合、コンポーネントマネージャーとシステムは何をしますか?
c++ - C++ で仮想関数を呼び出すときのセグメンテーション違反
現在、ゲーム エンジン用に C++ で ECS に取り組んでいます。2 つの仮想関数を持ちinit()
、update()
派生構造体に実装されている基本システム構造体があります。テンプレートを使用する関数addSystem()
とremoveSystem()
関数があり、一連のSystem*
システムがあります。それらを呼び出そうとすると、セグメンテーション違反が発生します。
システム:
addSystem():
removeSystem():
System* からの仮想関数の呼び出し:
さらに情報が必要な場合はお尋ねください。
編集:
size
for ループでは 1 に等しく、systems[i] は有効なポインターです。私もテストp systems[i]->update
しましたが、有効なアドレスもあります。問題は呼び出し中です。