Disclaimer: I am not on my home computer, so I cannot really test these particular snippits. I have used this method
MANY times in the past, so the theory is sound.
Use the 'NewValue' commands for this. It will generate a new position based on the old position, and angle, and a step value. For instance;
dbNewXValue( oldxvalue, yangle, stepvalue )
dbNewZValue( oldzvalue, yangle, stepvalue )
These two commands, when used to position the object, will create the effect you're looking for. Here is a simple example;
<IN PLAYER CONTROL FUNCTION>
float x, z;
<INPUT MODIFIER> (upkey, downkey, etc. )
x = dbNewXValue( dbObjectPositionX(1), dbObjectAngleY(1), 1 );
z = dbNewZValue( dbObjectPositionZ(1), dbObjectAngleY(1), 1 );
</INPUT MODIFIER>
dbPositionObject( 1, x, 0, z );
</IN PLAYER CONTROL FUNCTION>
This is a smooth method to control your player without relying on those nasty constrictive 'move' commands. Another note, if you are going for a sidestepping control, like in a standard WASD fps control system, simply modify the Y angle of the player object. For instance, to sidestep left, modify the angle by -90 degrees. +90 for the right.
Play with the commands, I guarentee they will work when you get the hang of them.
-Bishop

Tux is my guildmaster.