簡體   English   中英

如何在OpenGL的一定范圍內輪換一個object?

[英]How to rotate an object in certain range in OpenGL?

我做了一個錘子,我想在按下特定鍵盤時快速旋轉錘子以進行打擊。

我使用定時器 function 來實現這一點。 現在,當我按下特定的鍵盤時,我的音錘可以 360 度旋轉,我的目標是將音錘在 90 到 -90 度之間旋轉。

我的代碼:

bool stopRotation = false;
void weaponController(int val) 
{
    if (stopRotation != false) {
           zr++;   //the default angle is 0
           glutPostRedisplay();
           glutTimerFunc(1, weaponController, 1);
    } 
}
void specialkey(unsigned char key, int x, int y) 
{ 
    case 't':
    stopRotation = true;
    glutTimerFunc(10,weaponController,0);
    break;
    
    case 'T':
    stopRotation = false;
    break;
}

我怎樣才能做到這一點? 感謝您的幫助!

如果zr是錘子的旋轉,那么我會這樣看:

int zr=0,dzr=+1; // might be a float I do not know as you did not share
bool stopRotation = false;
void weaponController(int val) 
{
    if (stopRotation != false) {
           zr+=dzr;   //the default angle is 0
           if (zr>+90){ dzr=-1; zr=+90+dzr; }
           if (zr<-90){ dzr=+1; zr=-90+dzr; }          
           glutPostRedisplay();
           glutTimerFunc(1, weaponController, 1);
    } else { zr=0; dzr=+1; }
}

所以簡單的dzr是旋轉的方向,在每次穿過 +/-90 度障礙時反轉。 當不使用錘子時,其 position 和方向將重置為啟動條件....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM