【发布时间】:2013-02-25 18:20:35
【问题描述】:
我目前正在开发一个系统,在该系统中对象沿贝塞尔曲线进行动画处理。在曲线上的各种用户定义点处,可能存在动画对象必须响应的事件。这可能是速度的变化、动画例程的变化、朝向的变化等......
到目前为止,我有以下 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() 函数以更改当前动画速度。
我真正想做的是实现一个系统,例如使用装饰器设计模式,其中可以用多个对象装饰事件,当达到时,将应用所有装饰。我遇到的问题是我无法将指向父对象的指针传递给子对象,因为这会创建一个循环依赖项,但我也有一个问题,我不知道(在编译时)什么类型的动作活动将被装饰。
任何关于如何克服这个问题的想法将不胜感激!如果我忘记了任何可能有帮助的信息,我会尝试编辑它。
【问题讨论】:
标签: c++ oop design-patterns decorator