There are a few ways to handle this. One way is to use the POINT OBJECT command and always have the desired object point at the destination position. In this case, the destination would be player position.
Here is an example of this. Move the cube around with the arrow keys and steer with the mouse. In the center is a red cone that will always point at wherever the cube moves.
set display mode 800,600,16
sync on
sync rate 60
autocam off
hide mouse
rem make a matrix for reference
make matrix 1,1000,1000,10,10
rem make a cone that will always point at the player
make object cone 1,25
color object 1,rgb(255,0,0)
rem put it in the center of the matrix
position object 1,500,13,500
rem scale the cone so it has a long point
scale object 1,100,100,250
rem put the cone on it's side (rotate it forward) and change it's pivot
rem so that is behaves as if the point is it's front
xrotate object 1,90
fix object pivot 1
rem make a cube that will be the player
make object cube 2,25
position object 2,0,13,0
rem main loop
do
rem point the cone at the cube
point object 1,object position x(2),object position y(2),object position z(2)
rem move the cube around
gosub _move_object
sync
loop
_move_object:
rem move object forward/backward side to side with arrow keys
if upkey() or downkey()
rem forward - backward
fspeed=(upkey()-downkey())*5
newx#=newxvalue(object position x(2),camyang,fspeed)
newz#=newzvalue(object position z(2),camyang,fspeed)
endif
if leftkey() or rightkey()
rem side to side
sspeed=(rightkey()-leftkey())*5
newx#=newxvalue(object position x(2),wrapvalue(camyang+90),sspeed)
newz#=newzvalue(object position z(2),wrapvalue(camyang+90),sspeed)
endif
rem position the cube at the new coordinates
position object 2,newx#,object position y(2),newz#
rem rotate the cube
camyang=wrapvalue(object angle y(2)+mousemovex())
yrotate object 2,camyang
rem have the camera follow the cube
set camera to follow newx#,object position y(2),newz#,camyang,400,100,10,1
return
Enjoy your day.