3D GAMESTUDIO-Magazin Ausgabe 01 | Oktober 20051
3D GAMESTUDIO-Magazin Ausgabe 01 | Oktober 20051
3D GAMESTUDIO-Magazin Ausgabe 01 | Oktober 20051
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
esprechen. In diesem hier werden wir uns mit einer einfachen festen Kamera begnügen. Legen<br />
Sie nun eine WDL-Datei an und nennen sie"camera.wdl". Sie beinhaltet die Steuerung der Kamera.<br />
Beginnen wir mit den Variablen für die Kamera die man benötigt.<br />
var camera_pan = 0; // Winkel der Kamera<br />
var camera_dist = 250; // Abstand zum Player<br />
var camera_z_pos = 800; // Höhe der Kamera<br />
Damit hätten wir schon alle Variablen die wir für die "camera.wdl" benötigen. Was auch noch sehr<br />
hilfreich ist, wäre die Definition aller Funktionen die im dazugehörigen Skript vorkommen. Ich<br />
bevorzuge dies immer, um zu vermeiden das eine Funktion aufgerufen wird, die vorher noch nicht<br />
deklariert worden ist und gehe so einer Engine Fehlermeldung, die daraufhin bestimmt kommen<br />
wird aus dem Weg. Demzufolge schreiben wir nach den Variablen die Definition der Funktionen. In<br />
diesem Fall haben wir nur eine Funktion zum Definieren.<br />
function move_view();<br />
Funktion "move_view()"<br />
Beginnen wir nun mit der Funktion "move_view()". Es umfaßt die eigentlich Bewegung der Kamera.<br />
function move_view()<br />
{<br />
zugehörigen<br />
}<br />
camera.genius = player; // Entity wird unsichtbar wenn die Kamera die<br />
// Grenzen berührt<br />
// Berechnung X-Koord. Kamera<br />
camera.x = player.x + (camera_dist * sin(camera_pan));<br />
// Berechnung Y-Kood. Kamera<br />
camera.y = player.y + (camera_dist * cos(camera_pan));<br />
camera.z = player.z + camera_z_pos; // Berechnung Höhe der Kamera<br />
vec_diff(temp,player.x, camera.x);<br />
vec_to_angle (temp,temp);<br />
camera.pan = temp.pan; // Kamera Pan-Wert<br />
camera.tilt = temp.tilt; // Kamera Tilt-Wert<br />
Die erste Zeile der Funktion bewirkt das der Player unsichtbar wird sobald die Kamera die Grenzen<br />
der Entity berührt. Was in unserem Fall aber nicht auftreten wird. Zeile Zwei und Drei geben die<br />
Berechnung der x- und y-Koordinaten der Kamera bezogen auf die Weltkoordinaten an. Ich will<br />
hier nicht weiter auf diese Winkelberechnungen eingehen, da es hier den Rahmen wohl sprengen<br />
würde. Hierzu gibt es auf der Website von Grimber ein sehr ausführliches Tutorial von "Evelyn<br />
Boo". Nur soviel sei gesagt das wir mit den Angaben in der Klammer "(camera_dist *<br />
sin(camera_pan))" die x-Koordinate unserer Kameradistanz berechnen und mit der Anderen die y-<br />
Koordinate. Die dritte Zeile beinhaltet die Berechnung der Kamerahöhe. In den darauffolgenden<br />
Zeilen wird einmal der Vektor von der Kamera zum Player berechnet und mit "vec_to_angle" der<br />
Winkel dieses Vektors bestimmt. Danach werden die Pan- und Tilt-Winkelder Kamera danach<br />
ausgerichtet. So das erste Skript wäre nun vollendet. Wenden wir uns nun schwierigeren Dingen<br />
zu.<br />
<strong>3D</strong> <strong>GAMESTUDIO</strong>-<strong>Magazin</strong> ■ <strong>Ausgabe</strong> <strong>01</strong> | <strong>Oktober</strong> 2005 │68