i am using this code:
Code:
#define cam_tilt_min -60
#define cam_tilt_max -25

#define cam_dist_min 256		//Zoom max
#define cam_dist_max 1024		//zoom min

var camera_dist = cam_dist_max;
...
...
...
while (1)
	{
		camera.pan -= 50 * mouse_force.x * time_step * mouse_right;
		camera.tilt = clamp (ang (camera.tilt + 50 * mouse_force.y * time_step * mouse_right), cam_tilt_min, cam_tilt_max);

		camera_dist = clamp (camera_dist - 2 * mickey.z * time_step, cam_dist_min, cam_dist_max);

		camera.x = player.x - camera_dist * cos (camera.pan) * cos (camera.tilt);
		camera.y = player.y - camera_dist * sin (camera.pan) * cos (camera.tilt);
		camera.z = player.z - camera_dist * sin (camera.tilt);