2015-05-30 62 views
0

我想在Opengl中製作簡單的動畫。我的議程是朝一個方向移動對象。我用GLM這樣做:翻譯:Opengl,簡單的動畫

int iModelViewLoc = glGetUniformLocation(program, "modelViewMatrix"); 

mModelView = glm::translate(mModelView, 
    glm::vec3(dxb1, 0.0, -12.41989)); 

glUniformMatrix4fv(iModelViewLoc, 1, GL_FALSE, glm::value_ptr(mModelView)); 
brama1->Draw(); 

而我的功能,動畫,這是由被按下鍵和激活的功能:

for (int i = 0; i < 116; i++) 
    { 
     dxb1 = dxb1 + 0.05; 
    } 

但我不看動畫,只是第一移動點和最後一個。我怎樣才能改變這個看動畫?

+0

因爲該循環不繪製任何東西。變量會被更新,但除非您的(非命名!)編程語言非常必要,否則它的唯一影響是立即將'dxbl'設置爲最終值。 – usr2564301

回答

0

你必須創建一個動畫循環,並在每一幀更新值。更好的是,如果在每一幀上,你都可以根據時間計算出所需的位置。如果您使用過剩:

int oldTimeSinceStart = 0; 

while(...) 
{ 
    int timeSinceStart = glutGet(GLUT_ELAPSED_TIME); 
    int deltaTime = timeSinceStart - oldTimeSinceStart; 
    oldTimeSinceStart = timeSinceStart; 

    //your part 
    dxb1 = dxb1 + deltaTime * 0.05; 
} 
+0

我需要導入哪個庫來做到這一點? – voximdo

+0

它真的好像你是新的opengl,所以與過剩。 – csomakk

+0

另外來自http://nehe.gamedev.net/的教程,例如 – csomakk