PVector center;
float cameraZ;
void setup(){
size(500, 500, P3D);
center = new PVector(width / 2, height / 2, height / 2);
cameraZ = -500;
}
void draw(){
background(255);
float cameraX = map(mouseX, 0, width, - 200, 200);
float cameraY = map(mouseY, 0, height, -200, 200);
cameraZ += mousePressed ? 2: -2;
if(cameraZ < -500){cameraZ = -500;}
if(cameraZ > 0){cameraZ = 0;}
camera(center.x + cameraX, center.y + cameraY, center.z + cameraZ, center.x, center.y, center.z, 0, 1, 0);
pushMatrix();
translate(center.x - 50, center.y, center.z);
box(50);
popMatrix();
pushMatrix();
translate(center.x + 50, center.y, center.z);
sphere(50);
popMatrix();
}