我正在使用Ox Engine在XNA中製作3D遊戲。幾乎沒有文件記錄,而且我一直倖存下來,但現在我已經在一段時間內遇到了合理的障礙,我認爲該是尋求外部幫助的時候了。第三人稱相機的y軸在播放器周圍不正確 - 邏輯問題?
所有的移動和鼠標外觀x工作和相機正常但是當我在Y軸上上下移動鼠標以使相機在其圍繞角色的圓圈「泡泡」中移動時,會導致其他所有內容出去同步。角色應該由相機繞行,但它也需要告訴角色面對的方向是。我似乎無法兼得。
當我的代碼從它告訴它的字符的方向和移動「離開」(轉),它的移動軌道本身:
if (changeY > 0)
{
if (camMemory.Y > 110)
tempMatrix *= Matrix.CreateFromAxisAngle(model.Orientation.Left, MathHelper.ToRadians(changeY));
}
else if (changeY < 0)
{
if (camMemory.Y < 400)//FAKE PLACEHOLDER VALUE... highest point in arc goes here
tempMatrix *= Matrix.CreateFromAxisAngle(model.Orientation.Left, MathHelper.ToRadians(changeY));
}
Vector3 camPos = new Vector3(0, 0, 0) ;
camMemory = tempMatrix.Translation;
//NOTE: this is the piece that causes the "bubble" to move
moveAmount = tempMatrix.Forward * 200f;
/////
tempMatrix.Translation += moveAmount;
camPos = tempMatrix.Translation + model.Position;
//Pointer in front, Camera behind, make camera face pointer.
Engine.Camera.SetTransformByLookTarget(camPos, model.Orientation.Up, trackPos);
這意味着,通過不恰當當他轉動照相機時,將圍繞人物繞行。
然而,當我解決這個問題,我沒有足夠遠從字符有一個適當的視圖,並在tempMatrix.Translation簡單地乘以「擴大」的「泡沫」使我受到嚴重出來的地方。我缺乏頓悟。任何見解將不勝感激。
TL,博士:如何讓我周圍的字符大而不移動中心點的軌道攝像機泡沫(轉不工作或我使用它錯了!)
編輯我希望我可以把一個賞金這一點,笑
立即嘗試此操作.. – Remm 2011-03-10 22:01:43
劃傷所有我將繼續嘗試此操作,您的代碼完全破壞了我的x軸移動,但是修復了它;現在看看它是否可以用來使y軸工作... – Remm 2011-03-11 00:28:46
嗯,最後這讓我面臨同樣的問題,除了泡沫翻譯在他面前而不是後面*笑* – Remm 2011-03-11 01:22:44