1
我想在XNA中設置一個免費的飛行相機。我使用Lua主要連接到CLR來控制相機。處理LookVector飛行相機
我已經試過到目前爲止以下:
dkeys={}
LocalController.KeyDown:Add(function(s,e)
dkeys[KeyboardKey.FromInt(e)]=true
if e==KeyboardKey.W then
local r,x=coroutine.resume(coroutine.create(function()
while wait(.5) and dkeys['W'] do
local LookVector=Vector3:Subtract(LocalCamera.Target,LocalCamera.Position)
LookVector:Normalize()
LookVector=Vector3:Multiply(LookVector,Vector3:Create(.1,.1,.1))
LocalCamera.Position=Vector3:Add(LocalCamera.Position,LookVector)
LocalCamera.Position=Vector3:Add(LocalCamera.Target,LookVector)
end
end))
end
end)
我顯然不是做正確的事情,因爲結果變成相機來回彈跳相同點的正面和負面的形式之間。
這裏是我使用KEYUP代碼:
LocalController.KeyUp:Add(function(s,e)
dkeys[KeyboardKey.FromInt(e)]=false
end)
我有一個誤解是LookVector什麼? LocalCamera
是當前相機對象,其中Target
是相機正在查看的位置,而Position
是它正在查看目標的位置。
您正在分配LocalCamera.Position兩次。你是不是要分配LocalCamera.Target? – Ani 2012-07-31 14:04:40
@ananthonline:你是否介意將其作爲答案發布?這實際上恰好是問題所在。我討厭盯着像這樣的事情幾個小時,只是爲了讓它回到我的臉上,就像這樣愚蠢。感謝您的幫助!有時它只是重新審視一下。 – FreeSnow 2012-07-31 18:16:45
完成。是的,它總是那些小東西。很高興我能夠幫助! :) – Ani 2012-07-31 18:53:14