I had tried the even simpler method, where the place you click/touch determined the angle, and the distance from the cannon was the power, but this way felt more satisfying.
You could have him grab gunpowder on his way after firing to increase the max power available...
Edit:
A tip for those who want to shoot full power: Knock a hole in a wall with something on top of it like a turret, or a second floor. Then full power shot into the hole and the ball will bounce up hitting the part above, and then back down. Basically it will bounce around in that hole doing a great deal of damage.