411 REFERENCE · Wikibooks
Super NES Programming/Platform Physics
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
Ground Mode
Ground mode is when the player is standing or walking on the ground. In ground mode, the following routine is performed:
1) Check to see if jumping button is pressed
2) If so, jump to "initiate_jump_mode" routine
3) Check collision with the tiles below
4) If all tiles underneath player are empty, jump to "initiate_fall_mode" routine
Initiate Jump Mode
1) set "y_velocity" to "take_off_velocity"
2) set "jump_mode" flag
Initiate Fall Mode
1) set "y_velocity" to #0
2) set "jump_mode" flag
Jump/Fall Mode
Jump/Fall mode is when the player jumps or falls. In jump/fall mode, the following routine is performed:
1) increment "y_velocity" by #gravital_acceleration
2) add "y_velocity" to "y_coordinate"
3) if "y_velocity">0, then go to "fall_mode" routine
Fall Mode
1) checks for collision between player and tiles
2) If collision is detected, follow "land_on_ground" routine
Land on Ground
1) reset "jump_mode" flag
2) pop the sprite up to the top of the ground tile