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