問題タブ [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.
sprite-kit - SpriteKit エンティティ コンポーネント システム - 表示要素付きのクールダウン タイマー
エンティティ コンポーネント システムで、たとえばボタンにアタッチできる表示要素を持つクールダウン タイマーを作成する正しい方法は何ですか?
私の最初の考えは、タイマーとプログレスバーのコンポーネントを個別に分離することです。これにより、タイマーはエンティティに委任して、特定の数/割合を介してプログレスバーを更新するか、タイマーがエンティティ自体から正しいコンポーネントを取得して更新しようとします. このようにして、すべての懸念事項を個別のコンポーネントに分割しました。しかし、これは実際にはすべて「1 つのジョブ」と見なされる timerProgressBarComponent などの 1 つのコンポーネントに含まれている必要があります。理想的には、これにより既存のスプライトに表示要素が追加され、残り時間を示すことができます。
さらにコンテキストが必要な場合は、現時点では 10 秒ごとにしか押すことができないボタンの観点から考えていますが、UI を更新して、残り時間と 10 秒が経過したことを示したいと考えています。ボタンを再びタップ可能にします。
python - entity-component-system でセットアップ コードをどのように処理する必要がありますか?
私は ECS フレームワークとそれを使ったゲームを Python で書いています。ECS フレームワークでは、コンポーネントにはデータのみを含める必要があります。ただし、データを作成するためにセットアップ コードが必要になる場合があります。たとえば、オーディオ コンポーネントでは、データは再生するサウンドの音量とオーディオ ファイルへのパスになります。sound.play()
しかし、オーディオ再生ライブラリには、たとえばメソッドを持つサウンドを表すオブジェクトがあります。私の質問は、このオブジェクトをコンポーネントで作成する必要があるかどうかです。これは、エンティティが純粋なデータである必要があるという規則に違反しているのか、システムで作成されているのかです。システムで行うのが最善の場合は、1 回だけで済みます (オーディオ ファイルをフレームごとに 1 回作成する必要がある場合は、パフォーマンスが低下します)。これを行う最善の方法は何ですか?
c++ - 仮想基本クラスを使用した可変個引数クラス メソッド
すべての Init() 関数を回避し、代わりに各コンポーネント コンストラクターを使用するために、可変個引数テンプレートを使用するようにコンポーネント プール ジェネレーターを変更しようとしています。しかし、私はそれをコンパイルすることができません。
これはコンポーネント プール クラスです。基本クラスがあり、そのメソッドは親クラスによってオーバーライドされます。
ただし、コンパイラは、componentPool Create メソッドが基本クラスのメソッドをオーバーライドしていないと文句を言います (当然のことです)。この問題を回避する方法はありますか?
実際のエラー (VS 2015) は次のとおりです。