Well, orientation = rotation = facing.
I think what you mean is "change the position of the object without changing the rotation"?
There is a set of commands that makes this really easy.
NEWXVALUE(), NEWYVALUE(), and NEWZVALUE()
This code illustrates using them to move an object in the y direction the camera is pointing, without changing the facing of the object.
set display mode 800,600,32
` make some images
ink rgb(128,128,128),0
box 1,1,63,63
get image 1,0,0,64,64
cls
ink rgb(255,0,0),0
for x=2 to 20
line 31-x,x,31+x,x
next x
box 20,21,42,60
get image 2,0,0,64,64,1
`make some objects
autocam off
make object plane 1,100,100
xrotate object 1,-90.0
texture object 1,1
scale object texture 1,10,10
make object plane 2,10,10
xrotate object 2,-90.0
texture object 2,2
scale object texture 2,1,-1
set object transparency 2,1
make object box 3,10,8,10
cls
` set up the cameras and screen
ink rgb(255,255,255),0
center text 200,130,"CAMERA 0"
center text 600,130,"CAMERA 1"
center text 400,460,"Use the left/right arrow keys to turn the camera."
center text 400,490,"Use the up/down arrow keys to move the camera"
center text 400,510,"and the object in the direction the camera points."
set camera view 0,0,150,400,450
position camera 0,-20,5,-20
point camera 0,50,5,50
make camera 1
set camera view 1,400,150,800,450
position camera 1,0,90,0
point camera 1,0,0,0
do
` camera rotation control
if leftkey() then yrotate camera 0,camera angle y(0)-0.1
if rightkey() then yrotate camera 0,camera angle y(0)+0.1
` camera and object movement control
if upkey()
move camera 0,0.1
newX#=newxvalue(object position x(3),camera angle y(0),0.1)
newZ#=newzvalue(object position z(3),camera angle y(0),0.1)
position object 3,newX#,0.0,newZ#
endif
if downkey()
move camera 0,-0.1
newX#=newxvalue(object position x(3),camera angle y(0),-0.1)
newZ#=newzvalue(object position z(3),camera angle y(0),-0.1)
position object 3,newX#,0.0,newZ#
endif
` this part moves and orients the red arrow
position object 2, camera position x(0),5.0,camera position z(0)
yrotate object 2, camera angle y(0)
loop
As you can see, the object moves, but does not change its rotation/facing. I put in the second camera view so you can see that, even when the camera is not facing the object, the object still moves in the direction the camera is facing.
Now, if you instead want the object to remain in view the whole time, I suggest using the SET CAMERA TO FOLLOW command, or code that does something similar.