2014-03-04 64 views
1

我有一個應用程序,它使用Tween方法生成許多動畫。其中充斥着的是:使用GCC進行調試時END enum的問題ARM

pipe_Tweener.Tween(3.2f, 
    FLOAT, &pSprite->m_X, (float) -pSprite->GetImage()->GetWidth(), 
    FLOAT, &pSprite->m_Y, (float) pSprite->m_Y, 
    FLOAT, &pSprite->m_X, (float) -pSprite->GetImage()->GetWidth(), 
    FLOAT, &pSprite->m_Y, (float) pSprite->m_Y, 
    ONCOMPLETE, &Game::ResetP, 
    END); 

,另一個是:

pipe_Tweener.Tween(JUMP_TIME, 
    FLOAT, &bSprite->m_X, (float) bSprite->m_X, 
    FLOAT, &bSprite->m_Y, (float) bSprite->m_Y-JUMP_HEIGHT, 
    EASING, Ease::sineOut, 
    ONCOMPLETE, &Game::EndAnimating, 
    END); 

這些充斥着似乎使用的x86調試調試時很好地工作。但是,當我使用GCC ARM調試時,最終在IwTween.cpp的360行發生IwAssert失敗。 我已經通過了Tween方法調試,和我所注意到的是,我的第一個補間一切都很好,我可以看到該方法要通過每個TypeFLOATFLOATFLOATFLOATONCOMPLETEEND)。然而,對於當Tween方法獲取到END枚舉第二吐溫,Type變爲0,(讓我看到TypeFLOATFLOATEASINGONCOMPLETE0)導致默認情況下要執行的語句,它調用斷言失敗。

我不知道如果我做錯了什麼,或者如果這是果醬本身?

回答

1

其實我已經解決了這個錯誤,但我會在情況下,它會幫助其他人發佈。 我的EndAnimating方法不是靜態的,這在Tween方法中造成了一些問題。在使用ARM模擬器進行調試時,它只會造成問題。