Code:
function free_cam()
{
player = my;
my.invisible = off;
var fly_speed;
var fly_turn_speed = 12;
vec_set (camera.x, my.x);
vec_set (camera.pan, my.pan);
while(my)
{
if (key_shift) { fly_speed = 44; }
else { fly_speed = 32; }
vec_set (temp, nullvector);
temp.x = (mouse_left - mouse_right) * fly_speed * time_step;
camera.pan -= fly_turn_speed * mouse_force.x * time_step;
camera.pan = camera.pan%360;
camera.tilt += fly_turn_speed * mouse_force.y * time_step;
camera.tilt = clamp(camera.tilt, -90, 90); //limit
camera.roll = 0;
vec_rotate (temp, camera.pan);
vec_add (camera.x, temp);
wait(1);
}
}