2010-11-24 2 views
1

Как создать интерфейс для анимации чего-либо с помощью C++? Например, я хочу, чтобы исчезнуть картину в течение периода пяти секунд с помощью вызова статической функции, как:Создание функций tweening с использованием C++?

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

У меня есть жестко запрограммированная установка, которая создает объект для каждого подростковых действий, которое должно быть выполнено , Я использую переменную DeltaTime, которая отслеживает, сколько времени прошло с момента запуска программы для управления логикой и т. Д. Я включил пример (гораздо менее утонченный), чтобы показать вам, вроде того, что я пытаюсь сделать:

Пример логики Loop:


gameLoop(double DeltaTime){ 

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

    bool isItDone = otherClass.HaveFiveSecondsElapsed(double DeltaTime); 

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

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

} 

Пример Tweening Класс:


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

Я построил движок Tween для Java, который является достаточно общим для использования для любого атрибута любого объекта. Общая часть выполняется с помощью определения «Tweenable» интерфейса, который пользователи должны реализовать для анимации своих объектов.

Я настоятельно рекомендую вам использовать его в качестве вдохновения для создания вашего двигателя или его непосредственного порта. Я также могу запланировать самодельный порт на C++, но было бы довольно много работы, чтобы поддерживать его в актуальном состоянии с текущей версией java (которая растет очень быстро).

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

NB: Я сделал более подробный ответ об этом двигателе в этом вопросе:
Android: tween animation of a bitmap

+0

Это именно то, что я искал сделать - спасибо за тонну для этого. Самое смешное, что у меня в настоящее время есть проект на C++, и я работаю над игрой Android с помощью LibGDX, так что это идеально подойдет моим потребностям:] – recursive404 2011-04-14 13:35:21