I always use the same system as "Castle Crashers" and "Final Fighter", and any hack and slash game, by doing a simple 8 ways behavior on a shadow, instead of the player, so, the player instance is a simple sprite, and the real player is the shadow. When the player jump, it check it's Z from the shadow. Simple, efficient and large used on the game industry.
You can also detect the damage by checking the collisions on the player sprite, leave the shadow for movement purposes.
Edited:
I think my explain was not so clear to understand. Let's try again.
- Make a shadow in one instance, also, it can be a invisible object;
- Make the player instance, place it over the shadow and update its coordinates relatively to the shadow.
- Instead of making the player really jump, make it jump only relatively to the shadow. So can do the jump using math or using the platform behavior, pinning a solid to the shadow (it's not the best practice).
- Any other things like the damage masks, collision masks (with other objects and not with the scenario X and Y limits) you'll pin on the player, not on the shadow, but the collision masks, you'll pin to the shadow, so, your player will not be able to walk out the scenario limits.
If you have a CAPX to share, we can work on it and may help better than an explain.