I am experiencing some problems with angular movement in SDL.

The Projectile is supposed to travel from static point A to static point B in a

*straight*line.

The problem is that the angular movement seem to be snapped to whole 45 degrees.

To explain the behaviour that I am experiencing:

If there is a point A at 0,0 (x, y) that should travel to point b at 200,10 (x, y) then the object first travels 190 pixels in the x axel to 190,0 and then travels at a 45 degree angle in the posetive x, y angle.

191,1

192,2

193,3...

to

200,10

Now this isn't a very projectile like behaviour and unwanted.

My code looks like:

float radians = atan2(b.y - c.y, b.x - c.x); c.x += 4 * std::cos(radians); c.y += 4 * std::sin(radians);

(c being the traveling object and b the goal)

What is even more wierd is that if I change the speed modifier (represented by the litteral 4 in the above code) the behaviour of the moving object differs. It seems like the faster the object is travelling the more steep angles it can move in.

At 2 speed it can only move in 45 degree angles, at 4 speed it can move in 22.5 degree angles etc.

I would be very thankful for any insight as to what might be causing this problem.

Thanks in advance. / AS