while(player) {
//Rotationen des U-Bootes
my.pan -= rotationSpeed * mouse_force.x * time_step;
my.tilt -= rotationSpeed * mouse_force.y * time_step;
my.tilt = clamp(my.tilt,-20,20);
if(trace_hit) {
collision = 1;
}
if(collision == 1) {
//U-Boot wird zurückgeschleudert
vecSubmarineMoveSpeed.x = -accelerate(actualSpeedForward, 0,0.4);
vecSubmarineMoveSpeed.y = -accelerate(actualSpeedSideward, 0,0.4);
vecSubmarineMoveSpeed.z = -accelerate(actualSpeedUpDown, 0,0.4);
if(vecSubmarineMoveSpeed.x >= 0 && vecSubmarineMoveSpeed.x <= 0 && vecSubmarineMoveSpeed.y >=0 && vecSubmarineMoveSpeed.y <= 0 && vecSubmarineMoveSpeed.z >=0 && vecSubmarineMoveSpeed.z <= 0 ) {
collision = 0;
}
} else {
vecSubmarineMoveSpeed.x = accelerate(actualSpeedForward, 0.8*(key_w-key_s),0.04);
vecSubmarineMoveSpeed.y = accelerate(actualSpeedSideward,0.08*(key_a-key_d),0.04);
vecSubmarineMoveSpeed.z = accelerate(actualSpeedUpDown,0.4*(key_e-key_c),0.04);
}
c_move(my,vecSubmarineMoveSpeed,nullvector,0);
distToGround = c_trace(my.x,vector(my.x,my.y,my.z - 10000), IGNORE_ME);
wait(1);
}