2015-06-02 39 views
0

有一個位置爲x,y,z,俯仰和偏航變量的攝像機。有一個玩家有x,y,z和rotationY變量。讓球員保持俯仰(對焦)

我可以用這個代碼手動更改間距遊戲:

float pitchChange = Mouse.getDY() * 0.2f; pitch -= pitchChange;

我也有地形在我的遊戲,相機無法得到低於一定點(10F地形之上)它保持「浮動」。

在下圖中。箭頭代表相機指向方向,顏色與玩家相匹配。紅色的是假設它是在平坦的地形上。正如你所看到的,當我在地形上向下移動時,相機始終指向前方,而不是指向我的播放器上的某個點,直到我回到相同的高度或手動調整音高。如何通過投影機來解決這個問題? (見第二圖像)

How it is right now

How I want it

回答

0

好像與eyefocus point照相機表示將滿足您的需求更好。如果你綁定到pitch表示,可以計算出角度如下:

viewDirection = normalize(playerPosition - cameraPosition); 
camera.pitch = Math.asin(viewDirection.y); 
// pitch = 0 for horizontal view directions 
// pitch > 0 for upward view directions 

根據您的角度定義,你可能需要通過-1pitch。請注意,產生的角度以弧度指定。

相關問題