|
初学TV3D,请高手指点一下!谢谢!!
问题:怎么用鼠标拾取一个模型,并实现用鼠标任意拖动其位置?
我编的代码是:
If MR <> 0 Then '若右键被按下
P = Posi(i)
Set CollR = Scene.MousePicking(Mx, My, TV_COLLIDE_MESH, TV_TESTTYPE_ACCURATETESTING)
If CollR.IsCollision Then
Dest = CollR.GetImpactPoint '右键拖动到的位置。这样用不知对不对
Dire = VNormalize(VSubtract(Dest, P)) '方向
End If
If GetDistance3D(P.X, P.Y, P.Z, Dest.X, Dest.Y, Dest.Z) > 2 Then
Posi(i) = VAdd(Posi(i), VScale(Dire, TV.TimeElapsed * 0.1))
mesh(i).SetPosition Posi(i).X,Dest.Y, Posi(i).Z
End If
End If
想要在运行时,鼠标右键拖动物体时,物体跟随鼠标移动。
但实际运行时,物体离鼠标有距离,而且有时鼠标不移动物体也动???
估计我这个方法是不对的!
得用什么方法尼???
[em5] [em24]abc |
|