Your sprite should not have ANY spofs that move it, other than your first spofs to put it in the middle of the screen. Collision is hard, especially with BG, and it is very hard. You can check for the BG tile underneath you with TILE=BGGET(<layer>, <player sprite x>, <player sprite y - 5 or a small number like that>, 1) If TILE is a floor tile, then don't move the BG up and let him jump.