- Код: Выделить всё
D3DX.Intersect Mesh, AddVector, EndVec, Hit, FaceIndex, u, v, Dist, 0
Проверка идет от позиции камеры и центра экрана, а надо, чтобы ещё шла от координат курсора. Вращение камеры фиксировано на: AngleX=-1,57; AngleY=2
- Код: Выделить всё
'DirectID8.GetDeviceStateMouse DirectMouse
'AngleX = AngleX + DirectMouse.lX * 0.002
'AngleY = AngleY + DirectMouse.lY * 0.002
Pov.X = Sin(AngleX) * Sin(AngleY)
Pov.Y = Cos(AngleY)
Pov.Z = Sin(AngleY) * Cos(AngleX)
'SetCursorPos Screen_Center_X, Screen_Center_Y
Код от DirectXManiac:
- Код: Выделить всё
Public Function GetMousePickDirection(X As Single, Y As Single) As D3DVECTOR
Dim Mtemp As D3DMATRIX
Dim Mtemp2 As D3DMATRIX
Dim view As D3DVIEWPORT8
d3dDevice.GetTransform D3DTS_WORLD, Mtemp
d3dDevice.GetViewport view
On Local Error Resume Next
Cursor.X = X
Cursor.Y = Y
Cursor.z = 0
d3dDevice.GetTransform D3DTS_VIEW, Mtemp2
D3DXVec3Unproject vNear, Cursor, view, pjm, Mtemp2, Mtemp
Cursor.z = 1
D3DXVec3Unproject vFar, Cursor, view, pjm, Mtemp2, Mtemp
D3DXVec3Subtract GetMousePickDirection, vFar, vNear
End Function
не помог