For most of the games that are “not so easy to make at all but finally not so hard” (platformers, action adventure), I think that the method used in my template is not bad.
- Linear Velocity
Jumpkey using Tap option, linv + Limit Z button pressed : see 2nd screenshot here )
When jump button is pressed, Add jump state (that contains the jump actuator or script) and Sub jump state as soon as activated.
States are good to add Jump actions (double jump, etc) or lot of other things.
Except that, you don’t need States.