Создание функций анимации с помощью C ++? - PullRequest
1 голос
/ 24 ноября 2010

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

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 Ответ

1 голос
/ 13 апреля 2011

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

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

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

Примечание: я дал более подробный ответ об этом движке в этом вопросе:
Android: анимация анимации растрового изображения

...