使用C ++创建补间函数?

时间:2010-11-24 03:48:53

标签: c++ function tween

如何创建一个使用C ++补间的界面?例如,我想使用静态函数调用在5秒的时间内淡化图片,如:

Graphics::FadeSurface( Surface mySurface, int FrameHeight, int NumOfFrames,
   int FadeDirection, double Duration )

我有一个硬编码设置,可以为每个需要执行的补间操作创建一个对象。我一直在使用DeltaTime变量来跟踪自程序启动以来控制逻辑等的时间。我已经包含了一个例子(更不那么精致),以向您展示我正在尝试做的事情:

示例逻辑循环:


gameLoop( double DeltaTime ){

    // ...
    // logic
    // ...

    bool isItDone = otherClass.HaveFiveSecondsElapsed( double DeltaTime );

    if( isItDone == true )
        exit(1);

    // ...
    // logic
    // ... 

}

示例补间类:


other_Class::other_Class(){

    InitialTime = 0;
    InitialTime_isSet = false;

}

bool other_class::HaveFiveSecondsElapsed( double DeltaTime ){

    // Setting InitialTime if it hasn't already been set
    if( otherClass.InitialTime_isSet == false ){

        otherClass.InitialTime = DeltaTime;
        otherClass.InitialTime_isSet = true;

    }

    bool toReturn = false;

    if( DeltaTime - InitialTime > 5 )
        toReturn = true;

    return toReturn;

}

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

我为java构建了一个Tween引擎,该引擎非常通用,可用于补间任何对象的任何属性。通用部分是通过定义“Tweenable”接口来完成的,用户需要实现这个接口以补间其对象。

我非常鼓励您将其用作构建引擎的灵感,或直接移植它。我还可以为C ++计划一个自制的端口,但是使用当前的java版本(速度非常快)来保持它是最新的。

http://code.google.com/p/java-universal-tween-engine/

注意:我在这个问题上对这个引擎做了更详细的回答:
Android: tween animation of a bitmap