私は現在、オブジェクトがベジェ曲線に沿ってアニメーション化するシステムに取り組んでいます。カーブ上のさまざまなユーザー定義のポイントで、アニメーションオブジェクトが反応しなければならないイベントが発生する可能性があります。これは、速度の変更、アニメーションルーチンの変更、向きの変更などである可能性があります。
これまでのところ、次のAnimationEventクラスがあります。
class AnimationEvent
{
private:
unsigned int m_eventID;
float m_InteroplationPoint;
float m_SpeedInMPS;
public:
AnimationEvent(unsigned int id, float interpolationPoint);
~AnimationEvent(void);
const unsigned int getEventID();
void setInterpolationPoint(float interpPoint);
const float getInterpPoint();
const float getSpeed();
};
各イベントはカーブに沿ってオブジェクトとして割り当てられ、その補間ポイントに到達すると、カーブクラスはgetSpeed()
現在のアニメーション速度を変更するために関数を呼び出します。
私が本当にやりたいのは、デコレータデザインパターンなど、イベントを複数のオブジェクトで装飾でき、到達するとすべての装飾が適用されるシステムを実装することです。私が抱えている問題は、親オブジェクトへのポインタを子に渡すことができないことです。これにより、循環依存関係が作成されますが、(コンパイル時に)どのタイプのアクションがわからないという問題もあります。イベントはで飾られます。
これを克服する方法についてのアイデアは大歓迎です!役立つ情報を忘れた場合は、で編集してみます。