Hey folks, because of everyone using models for levels now. Here is an updated code that will work with model collision as well, thanks to Dima.
Code:
Function Camera_move()
{
while(1)
{
c_rotate(my, vector(-1 * (11 * mouse_force.x * time - 1.5 * ((key_a - key_d) + (key_cul-key_cur))),0,0), glide+Use_box);
camera.x = player.x - camera_distance * cos(player.pan);
camera.y = player.y - camera_distance * sin(player.pan);
camera.z = player.z + camera_height;
camera.pan = player.pan;
camera.tilt += 8 * mouse_force.y * time;
camera_distance = min(max(camera_distance,5),500);
Camera_collision();
wait(1);
}
}
Function Camera_Collision()
{
my = player;
Distance_traced = c_trace(player.x, camera.x,ignore_me + ignore_passable+use_box);
if((Distance_traced != 0))
{
Distance_traced -= 5;
camera.x = player.x - distance_traced * cos(camera.pan);
camera.y = player.y - distance_traced * sin(camera.pan);
}
}