VECTOR temp;
var camera_zoom_dist = 384;
action move_cam()
{
set(my,UNLIT | PASSABLE);
while(1)
{
vec_zero(temp);
if(!mouse_right)
{
if(mouse_pos.x < 16 || key_cul) temp.y = 8;
if(mouse_pos.x > screen_size.x-16 || key_cur) temp.y = -8;
if(mouse_pos.y < 16 || key_cuu) temp.x = 8;
if(mouse_pos.y > screen_size.y-16 || key_cud) temp.x = -8;
vec_rotate(temp,my.pan);
vec_scale(temp,time_step);
vec_add(my.x,temp);
}
else my.pan -= 8*mouse_force.x*time_step;
camera.pan = my.pan;
camera.tilt = -65;
camera_zoom_dist = clamp(camera_zoom_dist+mickey.z*0.5,64,512);
vec_set(camera.x,vector(-camera_zoom_dist,0,0));
vec_rotate(camera.x,camera.pan);
vec_add(camera.x,my.x);
wait(1);
}
}
void main()
{
fps_max = 60;
level_load(NULL);
ent_create(SPHERE_MDL,vector(0,0,32),move_cam);
mouse_mode = 4;
var i;
for(i = 0; i < 100; i++)
{
ent_create(CUBE_MDL,vector((random(2)-1)*512,(random(2)-1)*512,0),NULL);
}
}