コード例 #1
0
ファイル: Animation.cpp プロジェクト: wpbest/XPF
        bool Animation::update(sf::Time elapsedTime)
        {
            m_elapsedTime += elapsedTime;
            if (m_elapsedTime > m_totalDuration)
                m_elapsedTime = m_totalDuration;

            if (m_type == Type::Fade)
                m_widget->setOpacity(m_startOpacity + ((m_elapsedTime.asSeconds() / m_totalDuration.asSeconds()) * (m_endOpacity - m_startOpacity)));
            else if (m_type == Type::Move)
                m_widget->setPosition(m_startPos + ((m_elapsedTime.asSeconds() / m_totalDuration.asSeconds()) * (m_endPos - m_startPos)));
            else if (m_type == Type::Scale)
            {
                m_widget->setPosition(m_startPos + ((m_elapsedTime.asSeconds() / m_totalDuration.asSeconds()) * (m_endPos - m_startPos)));
                m_widget->setSize(m_startSize + ((m_elapsedTime.asSeconds() / m_totalDuration.asSeconds()) * (m_endSize - m_startSize)));
            }

            if (m_elapsedTime == m_totalDuration)
            {
                if (m_finishedCallback != nullptr)
                    m_finishedCallback();

                return true;
            }

            return false;
        }
コード例 #2
0
ファイル: taskqueue.cpp プロジェクト: Manuzor/risky-epsilon
void gep::TaskGroup::taskFinished()
{
    uint32 tasksRemainingInGroup = InterlockedDecrement(&m_numRemainingTasks);
    if(tasksRemainingInGroup == 0)
    {
        m_isExecuting = false;
        if(m_finishedCallback)
            m_finishedCallback(m_tasks.toArray());
        m_pTaskQueue->scheduleNextGroup();
    }
}
コード例 #3
0
ファイル: Animation.cpp プロジェクト: Cruel/TGUI
 void Animation::finish()
 {
     if (m_finishedCallback != nullptr)
         m_finishedCallback();
 }