[英]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.