var fallgeschwindigkeit = 0;
var distanz_zum_boden;
VECTOR vFuesse;
vec_for_min(vFuesse,me);
function kamera()
{
while(1){
vec_set(camera.x,my.x);
vec_set(camera.y,my.y);
camera.z = my.z+45;
camera.pan = my.pan;
wait(1);
}
}
function schwerkraft()
{
while(1){
if (c_trace(my.x, vector(my.x,my.y,my.z-1), IGNORE_ME | IGNORE_PASSABLE) >0)
distanz_zum_boden = my.z + vFuesse.z - target.z;
else
distanz_zum_boden = 0;
if (distanz_zum_boden > 0)
distanz_zum_boden = clamp(distanz_zum_boden,0,accelerate(fallgeschwindigkeit,5,0.1));
c_move(my,nullvector,vector(0,0,-5), IGNORE_PASSABLE | GLIDE);
//else
//{
// fallgeschwindigkeit = 0;
//}
wait(1);
}
}
function bewegen()
{
while(1){
if(distanz_zum_boden <1){
var distanz_vorne = 15*(key_w-key_s)*time_step;
var distanz_seite = 7*(key_a-key_d)*time_step;
distanz_vorne = sign(distanz_vorne)*(abs(distanz_vorne) + 0.5*fallgeschwindigkeit);
distanz_seite = sign(distanz_seite)*(abs(distanz_seite) + 0.5*fallgeschwindigkeit);
c_move(me,vector(distanz_vorne,0,0),vector(0,0,-fallgeschwindigkeit), IGNORE_PASSABLE | GLIDE | USE_BOX);
c_move(me,vector(0,distanz_seite,0),vector(0,0,-fallgeschwindigkeit), IGNORE_PASSABLE | GLIDE | USE_BOX);
my.pan += 1.3*(-mickey.x)*time_step;
camera.tilt += 1.3*(-mickey.y)*time_step;
}
else
{
beep();
}
wait(1);
}
}
action spieler()
{
wait(3);
set(me, INVISIBLE);
kamera();
schwerkraft();
bewegen();
}