Well, you could do something like:
remstart
obj is the object number
camX#, camY#, camZ# are the coordinates of the camera
x#, y#, z# are the coordinates of the object
remend
if upkey() = 1
`Point to camera
point object obj, camX#, y# camZ#
`Rotate 180 degrees
turn object right obj, 180
move object obj, 1
endif
if downkey() = 1
`Point to camera
point object obj, camX#, y#, camZ#
`Move object
move object obj, 1
endif
if leftkey() = 1
`Point to camera
point object obj, camX#, y#, camZ#
`Turn the object 90 degrees
turn object right obj, 90
move object obj, 1
endif
if rightkey() = 1
`Point to camera
point object obj, camX#, y#, camZ#
`Turn the object 90 degrees
turn object left obj, 90
move object obj, 1
endif
This code assumes your camera isn't top-down. Else, I'd advice to use the code:
remstart
obj is the object number
remend
if upkey() = 1
rotate object obj, 0, 0, 0
move object obj, 1
endif
if downkey() = 1
rotate object obj, 0, 180, 0
move object obj, 1
endif
if leftkey() = 1
rotate object obj, 0, 270, 0
move object obj, 1
endif
if rightkey() = 1
rotate object obj, 0, 90, 0
move object obj, 1
endif
(I didn't test it, but you should get the point, as it's actually more simple than the code you got right now...)
It's the programmer's life:
Have a problem, solve the problem, and have a new problem to solve.