I want to program graphical 2D games more complex than the basic 2D stuff I already know. I don\'t want to do 3D programming. Just more complex 2D stuff. I dropped high school b
You might want to check out any OReilly text on the topic. They have good examples that you can work through. This will give you a better idea of if programming is right for you. If you want to get into game programming, best way is to actually start game programming. Just go at it and look up answers to questions (links in other replies here) as they arise.
If you live in the US, how about enrolling at a local community college to take those math classes you missed? They will have resources available to help students who need remedial skills classes and may have a learning disability. You have an incentive to learn and you now realize the value of the education. There's no shame in wanting to learn. See an academic counselor and they'll help you out. Go for it.
You need to be competent in Trigonometry: Wikipedia and Mathworld
Even though you don't wish to do 3D programming, 2D games also use vectors and matrices. (from Linear Algebra)
Linear Algebra resources: Wikepedia and Mathworld
One point that will save you a lot of effort in Trig programming is realizing the need for the atan2() function, rather than the atan() function. This is important when determining the direction between two points.
Being able to move between various coordinate systems is a big plus. This will come with experience. Two common things that trip people up are:
a) Most screen systems place the origin (0,0) in the upper left corner, with the positive x axis extending to the right and the positive y axis extending down. Standard Cartesian coordinates suppose the origin of Quadrant 1 (where x and y are always positive or zero) in the lower left. This requires a programmer to 'flip' the y orientation at some stage.
b) Typical geography places 0 degrees as North and positive degrees sweep clockwise. All the Trig functions place 0 degrees as East with positive degrees sweeping counter-clockwise.
Finally, even though we tend to think in degrees, real libraries will use radians. A best practice is to store angles as radians (in 'math' orientation rather than 'geo') and convert things when displaying debug information..
I very much believe that learning from Videos series is the fastest way ever possible for learning, that is, if you wanna move fast with the thing that you're willing to learn. You could spend a lot of time reading a page just to get a small piece of info that a video could give you in a minute or two!
And for that, I found this Math channel: https://www.youtube.com/user/patrickJMT
Also: https://www.youtube.com/playlist?list=PL233FC7AA6FE11E0E
Strangely I've found a lot of useful stuff on linear algebra in Wikipedia: http://en.wikipedia.org/wiki/Portal:Mathematics
Generally it's not the best source of knowledge, but math there is ok.