The first/easiest thing to implement is a small "window", inside which the player can move without the screen scrolling. The screen starts scrolling as soon as the player hits the edges of this window. Other interesting behavior, e.g. in Super Mario World, is that sometimes when jumping upwards, the screen will not scroll until the player hits the ground.
So it's another seemingly simple, but at heart intricate problem. I guess I'm asking, because I kind of know the problem and how it's supposed to behave, but don't really have simple rules about how to implement everything. Also I haven't decided how complicated I want to make this.
Here's some info about this topic from Google:
http://replicaisland.blogspot.com/2010/ ... amera.html
http://blog.mimeoverse.com/post/5770607 ... uper-mario
http://blog.mimeoverse.com/post/5814677 ... d-minimize