Moving 3D objects with the mouse

Blitz3D Forums/Blitz3D Beginners Area/Moving 3D objects with the mouse

There's an example in the code archives to move an object around on a plane parallel to the camera. I modified that function into this to move an object around on a ground plane:

; -----------------------------------------------------------------------------
; Positions an entity in 3D from given 2D coordinates
Function PositionEntityFrom2D(usecam,entity,x2d#,y2d#,height#=0,camZoom#=1)
gw=GraphicsWidth()
gh=GraphicsHeight()
x#=-((gw/2)-x2d)
y#=(gh/2)-y2d
parent=GetParent(entity)
EntityParent entity,usecam
z#=Abs(EntityZ(entity))
div#=(gw/(2/camzoom))/z
x=x/div
y=y/div

;z distance determined by a straight line from camera, through xyz coordinates, to height
TFormPoint x,y,z,usecam,0
y3d#=height
x3d#=TFormedX()
z3d#=TFormedZ()
EntityParent entity,parent
PositionEntity entity,x3d,y3d,z3d
End Function
;-----------------------------------------------------------------------------