Hi,
ich arbeite gerade an einem neuen Projekt, und erstelle gerade den Movementcode. Allerdings bleibt das Spielermodell in der Luft, fällt also nicht zu Boden. Hier meine Schwerkraftfunktion:
function schwerkraft()
{
while(1){
if (c_trace(my.x, vector(my.x,my.y,my.z-100000000), IGNORE_ME | IGNORE_PASSABLE | USE_POLYGON) >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));
else
fallgeschwindigkeit = 0;
wait(1);
}
}
Und hier mein ganzer Code, der dem Spielermodell zugewiesen ist:
var fallgeschwindigkeit = 0;
var distanz_zum_boden;
VECTOR vFuesse;
vec_for_min(vFuesse,me);
function kamera()
{
while(1){
camera.x = my.x;
camera.y = my.y;
camera.z = my.z;
camera.pan = my.pan;
wait(1);
}
}
function schwerkraft()
{
while(1){
if (c_trace(my.x, vector(my.x,my.y,my.z-100000000), IGNORE_ME | IGNORE_PASSABLE | USE_POLYGON) >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));
else
fallgeschwindigkeit = 0;
wait(1);
}
}
function bewegen()
{
while(1){
my.pan += 2*(key_a-key_d)*time_step;
wait(1);
}
}
action spieler()
{
kamera();
schwerkraft();
bewegen();
}
Alles andere funktioniert, alles bis auf die "Schwerkraft".
Danke schonmal im Voraus,
TheShooter