Thanks for the feedback.
The game uses it's own custom controls, which is a dpad, but slightly different from the usual dpads.
Here's how I got it so responsive:
1) The player can touch and drag anywhere on the left half of the screen to move.
(Game will have an optional left-handed mode for people who prefer the right half of the screen for movement.)
2) Do not use a dpad image, because the player does not need to see the dpad.
It also makes the movement feel less restrictive.
3) The dpad moves with the player's finger.
So if his finger moves further than a max radius then the dpad's centre follows the finger.
This makes it easy to quickly move in the opposite direction, because the player does not need to move his finger far.
4) Use absolute values (i.e. -1, 0 and 1).
The dpad has a small deadzone, in which the value is zero.
When the finger leaves the deadzone then the value is either -1 or 1.
This makes the game responsive and gives instant feedback to the player.
In addition, the character's movement has some "automatic" features.
Some are in this article I wrote, such as the ladder tip:
http://devmag.org.za/2012/07/19/13-more-tips-for-making-a-fun-platformer/I used a similar system in the following 2 games:
https://itunes.apple.com/ca/app/bounty-arms/id592322930?mt=8https://itunes.apple.com/us/app/pure-fun-soccer-lite/id533048090?mt=8