this code is a fast to implement code to make a freeflight camera
It works better than the "0-key" freeflight of the engine.
Just insert the code, and start "tools_camera_freeflight1();"
Code:
//simple freeflight without collision detection
function tools_camera_freeflight1()
{
fps_max=80; //limititing the framerate to overcome some calculation problems
var tools_movespeed=20; //how fast to move
var tools_movecam[3];
var tools_cam_turnspeed=20;
while(1)
{
//turn the camera
camera.pan-=mouse_force.x*tools_cam_turnspeed*time;
camera.tilt+=mouse_force.y*tools_cam_turnspeed*time;
camera.tilt=max(-90,min(camera.tilt,90));
vec_set(tools_movecam.x,nullvector); //reset movement vector
//get wasd or cursor movment
if(key_w||key_cuu){tools_movecam.x=tools_movespeed*time;}
if(key_s||key_cud){tools_movecam.x=-tools_movespeed*time;}
if(key_a||key_cul){tools_movecam.y=tools_movespeed*time;}
if(key_d||key_cur){tools_movecam.y=-tools_movespeed*time;}
//rotate by camera heading
vec_rotate(tools_movecam,camera.pan);
//move the camera
vec_add(camera.x,tools_movecam.x);
wait(1);
}
}
Edit: I have inserted an FPS_Max and a timed input of mouse_force
to adjust to framerate dependencies