問題タブ [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 に答える
449 参照

java - Ashley ECS で有限ステート マシンを使用してプレーヤーをアニメーション化する

学校で大きなプロジェクトがあり、libGDX を使用して Pixel Platformer ゲームを開発しています。

ほとんどの部分で ECS を使用していますが、プレーヤーの状態または少なくとも攻撃の状態を区別できないため、プレーヤーのアニメーションのレンダリングに問題がありました。

プレイヤー状態クラス

ちょっとお見せしましょう、だから私はこの「動き」の状態を持っています:

Player Animations Enum

ただし、プレーヤーのアニメーションには少なくとも次の状態が必要です。

このパックされたテクスチャには、さらに多くのものがあります: Player Animations Atlas

PlayerAgent クラス:

アニメーション コード

プレーヤーを処理する AnimationSystem のコード:

Grounded -> Idle, Walking のような状態の中に状態を持たせることを考えていました。しかし、プレイヤーを AttackStates にする方法はまだわかりません。

0 投票する
2 に答える
43 参照

c# - ディクショナリ値を出力パラメータおよび参照として変更

Entity-Component-System の例を作成したいと考えています。私は次のようなコンポーネントを持っています

実装する

コンポーネントをループするときは、できるだけ早く見つけたいと思っています。コンポーネントの型をキーに、コンポーネントを値に取るディクショナリを作成することを考えました。

2つの問題が発生します。

  1. 誰かが を使用して新しい MovementspeedComponent を作成し、float movementspeedそれを追加しようとした場合はどうなりますか? フロートが 2 つあると、重複キー例外がスローされます。IComponent重複を防ぐためにインターフェイスを実装するカスタム構造体コンポーネントしか追加できませんでした。

  2. コンポーネントを変更しようとすると、参照によって変更されません

    /li>

助言がありますか?