我正在創建一個2D遊戲,此刻我正在嘗試旋轉我的敵人,以便當我的玩家移動時它總是面向我的玩家。我正在使用點積來計算角度然後旋轉敵人,但它不起作用。下面是我如何制定的角度...OpenGL - 二維敵人不旋轉面對玩家
//calculating the angle
float numerator = (player.x*enemy.x)+(player.y*enemy.y);
float denominator = sqrt((player.x*player.x)+(player.y*player.y))*sqrt((enemy.x*enemy.x)+(enemy.y*enemy.y));
float angle = acos(numerator/denominator);
這也是一個更新功能中重新計算。
下面是我如何顯示我的敵人......
glPushMatrix();
glTranslatef(enemy.x, enemy.y, 0);
glRotatef(angle,0,0,1);
glTranslatef(-enemy.x, -enemy.y, 0);
enemy.drawCircle(enemy.x,enemy.y, enemy.radius);
glPopMatrix();
我要去哪裏錯了?
以何種方式的角度? – Xirema
我也強烈推薦你將你的代碼庫轉換爲Modern OpenGL,因爲試圖在OpenGL 1.x中做這些東西是一個導致類似問題的噩夢。 [這是學習現代OpenGL的好地方](http://www.learnopengl.com/#!Introduction) – Xirema
它根本不旋轉....所以我改變它旋轉角度* 180/PI來看看什麼這是否和它旋轉看我的球員有時取決於球員的位置但是大多數時間它不能正確旋轉 – BinaryX