The primary think to keep in mind is that using integers to track position is a bad idea if the object is moving, especially at an angle to any of the major axes. If you use the current position in integer form you lose precision. Either track it using a float and round the location up or down to an integer when you tell it where to display or always work from the starting position and do your calculations predicated on where it should be each time through the loop.
When I wrote my own line drawing routine I initially determined an x-slope and a y-slope and based the movement on an independent variable then calculated the x and y position separately based on the "cycle."
x = startx + xslope * cyclenumber;
y = starty + yslope * cyclenumber;
to be brief. The problem is that you have to do some casting since the slopes should be floats. You might also look up some line drawing algorithms. I found some that, IIRC, use only integers and depend on the current position rather than the initial position. I personally don't like using floats unless I have to.
Lilith, Night Butterfly
I'm not a programmer but I play one in the office