我正在嘗試在我的項目中製作第一人稱相機。我跟着這個教程jogl - 第一人稱相機
http://www.morrowland.com/apron/tutorials/gl/gl_camera_3b.zip
鍵盤動作是確定的,但鼠標移動很奇怪。我用java + jolg,但我認爲沒有什麼太大的區別
這裏是負責旋轉兩種方法:
public void rotate(float speed) {
aux = mView.minus(mPos);
mView.z = (float) (mPos.z + Math.sin(Math.toRadians(speed)) * aux.x + Math.cos(Math.toRadians(speed))
* aux.z);
mView.x = (float) (mPos.x + Math.cos(Math.toRadians(speed)) * aux.x - Math.sin(Math.toRadians(speed))
* aux.z);
}
public void mouseMove(float x, float y) {
float angle_y = 0.0f;
float angle_z = 0.0f;
if ((x == w/2) && (h/2 == y))
return;
robot.mouseMove(w/2, h/2);
angle_y = (float) ((w/2 - x))/1000;
angle_z = (float) ((h/2 - y))/1000;
mView.y += angle_z * 2;
if ((mView.y - mPos.y) > 8)
mView.y = mPos.y + 8;
if ((mView.y - mPos.y) < -8)
mView.y = mPos.y - 8;
rotate(-angle_y); // Rotate
}
且有聽衆:
public void mouseMoved(MouseEvent e) {
Point p = e.getPoint();
camera.mouseMove((float)p.getX(),(float) p.getY());
}
請稍微擴大一下「很奇怪」。請提供有關此問題的更多詳細信息 – 2012-03-13 00:08:58
攝像頭看起來不正常。對於所有方向和非常不連貫的方向移動都不一樣。 – enkor 2012-03-13 00:15:15