Nicht jede Information, die ich im "Puzzle" gegeben habe ist auch tatsächlich für den Code wichtig. Wichtiger ist es, dass du den Befehl c_trace verstehst. Du hast bereits die korrekten Vektor-Parameter übergeben (player.x,camera.x), welchen Tracemodus du brauchst, hängt aber von deinem Level ab. Sehr wahrscheinlich musst du aber den Spieler "player" selbst ignorieren!. Wenn der me-pointer auf diesen zeigt, so kannst du "ignore_me" verwenden, sonst kannst du

Code:
you=player;
?????????? c_trace(??????????,?????????????,ignore_you);


verwenden. (Was an die Stelle der "?" gehört, liegt an dir, herauszufinden!)

Der Rückgabewert ist aber nur eine Zahl. Setzt du lediglich "camera.x" darauf, so veränderst du nur die X-Koordinate der Kameraposition, nicht aber die Y-, oder Z-Koordinate. (Derzeit hat camera.x gar nichts mit der Spielerposition zu tun - du setzt es auf den Abstand vom Spieler zum Hindernis!)

Überlege: Wie hängt die gewünschte Kameraposition mit dem zusammen, dass c_trace macht?. Dein c_trace-schnipsel wirkt so, als würde ich von der Spielerposition meinen Laserpointer auf die derzeitige Kameraposition (die ja falsch, weil z.B. hinter einer Wand ist) richten. Stell dir also vor, dass dazwischen eine Wand ist. Was genau ist "target" in diesem Fall?

C_trace ist ein Befehl, den man sich bildlich vorstellen kann. Nutze das aus!

Wenn du die Fragen im "Überlege"-Block beantworten kannst, wirst du den Code selbst schreiben können.
Ansonsten antworte hier, und wir arbeiten gemeinsam dran.

Bitte versuche dennoch, es selbst zu lösen - das ist in deinem eigenen Interesse!

-----

EDIT: Noch eine Sache. Ich habe geschrieben:

Quote:
"Camera.x" gibt dir die derzeitige Position der Kamera an.


Das ist nicht falsch, aber hier vielleicht irreführend.

Die "Camera" ist natürlich auch irgendwo in deinem LEvel zu finden, und zwar an der Position

camera.x
camera.y
camera.z

Das sind die drei Koordinaten, die wir ja brauchen, um die Position im raum eindeutig festzulegen.

Für bestimmte Befehle, z.B. die ganzen "vec_"-nummern, übergibt man ja Vektoren. In diesem Fall reicht es, "camera.x" zu schreiben, also z.B.

vec_add(camera.x,vector(1,2,3));

Verwendest du die Zeile "camera.x" jedoch getrennt, so veränderst du nur die X-Koordinate.

Code:
//Die Kamera ist an der Position (2|4|6).
vec_add(camera.x,vector(1,2,3));
//Jetzt ist die Kamera an der Stelle (3|6|9).
camera.x += 10;
//Jetzt ist die Kamera an der Stelle (13|6|9).


Das mag anfangs etwas verwirrend sein, aber du wirst dich schnell daran gewöhnen. Erst recht als Mastermind wink


Perhaps this post will get me points for originality at least.

Check out Dungeon Deities! It's amazing and will make you happy, successful and almost certainly more attractive! It might be true!