私は最近、エンティティシステムパラダイムを使用してゲームエンジンの設計を開始しました。つまり、コンポーネントの集約としてエンティティを持ち、実際のゲームを実装するシステムがあります。私はさまざまな面で困難を経験してきましたが、最も気になるのは、さまざまなコンポーネント/システムの抽象化/モジュール性です。具体的には、Player
いくつかのアニメーション状態があるとしましょう。Walking
、Sleeping
、Jumping
、のいずれかのタイプとOpponent
、エンティティは、例えば、同様にいくつか(必ずしも同じ)状態を有します。Walking
、Hiding
など
各エンティティタイプのさまざまな(アニメーション)状態を処理するようにエンジンを設計するにはどうすればよいですか?エンティティタイプごとに異なるアニメーションシステムが必要ですか?正しいエンティティをレンダリングするためにアニメーションシステムに信号を送るフラグを使用する必要がありますか?また、さまざまなポーズに「ハードコードされた」列挙型の使用を回避できますか?スクリプトシステムがおそらく役立つことがわかりますが、もっと簡単な解決策があるとほぼ確信しています。
if
アニメーションシステム内でいくつかのを使用することをお勧めします。以前は(C ++で)文字列の辞書をメモリに関して使用することについて懐疑的でした。ハッシュテーブルについて今日読んだので、私はあなたの答えは非常に簡単だと思います。「ブレンダー」の部分について:「50%の歩行を追加する」とは、一部のフレームを50%の時間で「歩行」のフレームに置き換えることを意味しますか?