2010-11-24 17 views
1

C++を使用して何かをトゥイーンするためのインターフェイスを作成する方法私は実行する必要がある各トゥイーンアクションのためのオブジェクトを作成し、ハードコードされたセットアップを持ってC++を使用してトゥイーン関数を作成しますか?

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

:たとえば、私のような静的な関数呼び出しを使用して5秒間の期間にわたってで画像をフェードインしたいです。私は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

私は任意のオブジェクトの任意の属性をトゥイーンするのに十分な汎用性のあるJava用のTweenエンジンを構築しました。一般的な部分は、ユーザーがオブジェクトをトゥイーンするために実装する必要がある「Tweenable」インターフェースの定義によって行われます。

私はあなたのエンジンを構築するためのインスピレーションとして、またはそれを直接移植することを大いに奨励します。私はC++への自家製ポートを計画することもできますが、現在のJavaバージョン(これは非常に高速になります)で最新の状態に保つことはかなりの労力を要します。

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

NB:私はこの質問にこのエンジンについてもっと精巧な答えをした:
Android: tween animation of a bitmap

+0

をこれは私が何を探していたまさにです - このためのおかげでトン。面白いのは、私は現在、古いC++プロジェクトを持っていて、LibGDXを使ったAndroidのゲームに取り組んでいるので、これは私のニーズに完全に合っているはずです:] – recursive404

+0

あなたのプロジェクトについて話そうlibgdxフォーラムには素晴らしいコミュニティがあります。チュートリアル、ショーケース、ツールを使ってTween Engine用の専用ウェブサイトを作成したら、それを完全に普遍的なものにするためにC++(最初)と.NETに移植します。 –

関連する問題