Sliding down

I have been working on adding wall jumping to my next game and it has been a heck of a process. Not only difficult to pull off in many games, implementing it is requires so many checks. Does the player have the ability to wall jump?

Is the player against a wall to the left or right?

Has the player recently done a left (or right) wall jump? (This is to prevent just hopping along a wall but allow back and forth jumping.)

And then there is the velocity to apply as well. All of this tweaking is taking a decent amount of time and when coupling it with the iOS touch controls it is something I absolutely want to get right. There were a few bugs along the way like being able to infinitely jump backwards after touching a wall once but my favorite so far was how if the wall jump ability was not enabled the player would bounce sometimes when hitting the ground.

Hmm? Yeah, since I was telling the game to jump by pressing the butt but the game was saying no because the wall jump ability was not enabled it was holding off to do it until it could again, which was when the player hit the ground. I am getting a real good feeling for just exactly how complex the logic is in even simple looking action games.