Yes, that was a coding error and should have been addition.
That ElapsedGameTime.Milliseconds returns milliseconds. I changed it to ElapsedGameTime.Seconds. I had no idea that seconds were needed rather than milliseconds. Indeed, I just plugged that in to experiment. I had no idea what exactly belonged there. It still seems odd to have it simply return seconds. It might be my ignorance but my gut tells me that something needs to be done to count those seconds rather than just return an arbitrary number of seconds.
I honestly couldn't tell you if GetSpeed() returns a vector or scalar since I'm not sure about the terminology. Does this help?
public
Vector2 GetSpeed()
{
return m_Speed;
}
What exactly is a UnitDirectionVector that is needed? You said it is a unit vector pointing in the direction the sprite is to travel. Would that not be what is determined via the SetSpeed function? Or am I way off base here?
As far as -Vector2.Normalize, as I understand it, when Alvaro mentioned dividing a vector by its length to give it a length of one, I thought that was normalizing a vector. So with that thought in mind, I went for the Normalize.
The mention of something depending on speed was my attempt at (perp.x, perp.y). I didn't know how to go about that or (v.x, v.y) beyond trying to plug in the speed.
I have been studying up on this kind of math but being self-taught at this, I often don't know what to ask or how to ask it. Or for that matter, what to look up for this sort of thing. Dealing with the frustration of trying to hunt this stuff down is what caused me to post here. Sure, it may be basic math if you are used to it but it won't be basic to me until I can get some explanations that tackle what I need head-on rather than just abstract concepts from a textbook (which this post is heading towards :) ).