Hi @dax trajero,
Do you want to ship to be firmly locked in the center? Or do you want there to be a slight buffer, i.e. when the ship reaches toward a certain “edge” of a central zone, it moves the theoretical camera? The first option is much easier than the second.
In either case, you’ll probably want to move the world as a display group… but since you can’t shift display groups independently and get proper collisions using physics, you’ll need to constantly update (via Runtime) the ship’s offset position based on how much the world has moved. For example, if the world moves (in a given game cycle) 10 pixels to the right and 5 pixels down, you’ll need to update the ship position 10 pixels left and 5 pixels up, to offset the world’s movement while keeping the ship in the same coordinate-related space for physics collisions to work as expected.
You may want to experiment with the “Perspective” code from the Code Exchange. I haven’t tried it myself, but many users seem to vouch for it being useful and easy to implement.
http://developer.coronalabs.com/code/perspective
Take care,
Brent