如何创建一个使用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;
}
非常感谢任何帮助。谢谢!
答案 0 :(得分:1)
我为java构建了一个Tween引擎,该引擎非常通用,可用于补间任何对象的任何属性。通用部分是通过定义“Tweenable”接口来完成的,用户需要实现这个接口以补间其对象。
我非常鼓励您将其用作构建引擎的灵感,或直接移植它。我还可以为C ++计划一个自制的端口,但是使用当前的java版本(速度非常快)来保持它是最新的。
http://code.google.com/p/java-universal-tween-engine/
注意:我在这个问题上对这个引擎做了更详细的回答:
Android: tween animation of a bitmap