try my.polygon = on for the collision detection. this might help the stopping before the wall problem.

As for the tilt problem: ent_move, the way you are using it, moves the arrow in the direction that it's pointing, not absolute coordinates. So, what you should do is not apply a gravitational force at all, but simply tilt the arrow, and let ent_move do the rest of the work:

Code:

temp.x = my.firespeed;
temp.y = 0;
temp.z = 0;
ent_move(temp, nullvector);
my.tilt -= time_step; // play with this value



See if those 2 things help!

Last edited by LogantheHogan; 08/10/07 16:50.