I didn't have much to add from your comments actually, they covered most of the problems ^^ But there is one thing that I don't remember seeing. When doing a 2D game, you always want to make the hitbox smaller than the sprite if it's not a platform or a wall. Otherwise the collision won't feel fair to the player ^^