The plan behind the plan:
I'm writing this for myself as much as anyone else. It's a plan of action. I've been using an interesting (read wrong - at least I think) method of collision detection. I made it up myself. It works but it's pretty slow and causes loads of problems and it hurts my brain fixing them and my fingers typing them and my eyes looking at my ugly code. So. The new plan is another method of collision detection that may or may not work. I've made a copy of my game if all goes awry so I can go back to what I have now.
So what are we doing eh, CentureMan?
Short version: Better, faster collision detection.
Long version: Welllll, I'm going to use the amount of overlap in collisions in addition to the speed the character was going, both vertically and horizontally just before the collision to decide where I will put him so he doesn't get himself stuck inside walls. That was my original problem: I can work out if he's in a wall now how do I decide where to put him to get him out? Where did he come from exactly? I think I can figure that out now.
The other thing I want to do is use this per pixel stuff in conjunction with this new method. I've never done that before so it should be interesting. I think I'll start off by making a little program that does that just to test it out and learn the ropes.
So how long will this take?
Probably a few weeks, but in theory it'll be faster than my old method. We'll see how things go.
I want a picture
This is what the game is about.