3D Gamestudio und MySQL
3D Gamestudio und MySQL
3D Gamestudio und MySQL
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
}<br />
}<br />
Die Hauptfunktion unserer Entity beinhaltet den Sprung in sämtliche andere Funktionen der Entity.<br />
Ich wähle immer diesen Weg der Hauptfunktion <strong>und</strong> den Sprung in die Unterfunktionen da es mir<br />
auf diesem Wege möglich ist eventuell bei bestimmten Aktionen verschiedene Funktionen der<br />
Entity zu überspringen. Ich gehe hier nicht im einzelnen auf die verschiedenen Funktionssprünge<br />
ein da wir die Funktionen noch genau besprechen werden.<br />
Hier nur eine grobe Auflistung der Funktionen <strong>und</strong> für welche Berechnungen sie zuständig sind.<br />
function Max_Min_Berechnung(); // Grenzen der Bo<strong>und</strong>ing Box<br />
function Abstand_zum_Boden(); // Abstandsberechnung zum Boden<br />
function Abstand_Ecken(); // Abstandsberechnung der Ecken der Entity zum Boden<br />
function Anziehungskraft(); // Anziehungskraftberechnung der Entity<br />
function Schieflage(); // Schieflage der Entity über Abgr<strong>und</strong><br />
function Drift(); // Drift der Entity bei Schieflage<br />
function Kraftfaktor(); // Kraftfaktorberechnung bei Berührung der Entity<br />
function Bewegung(); // Bewegung der Entity<br />
Unterhalb des Funktionssprungs zur Max-Min Berechnung finden Sie die Zuweisung der Max-Min<br />
Parameter in die Entity_X Skills, diese Zuweisung findet statt wenn im WED keine Angaben der<br />
Ausdehnung der Entity gemacht werden.<br />
3.3 Die Funktion "Max_Min_Berechnung()"<br />
function Max_Min_Berechnung()<br />
{<br />
my._MaxMin_x = (my.max_x - my.min_x);<br />
my._MaxMin_y = (my.max_y - my.min_y);<br />
my._MaxMin_z = (my.max_z - my.min_z);<br />
}<br />
Hier berechnen wir die Grenzen der Bo<strong>und</strong>ing Box der Entity. Diese Berechnung könnte man sich<br />
sparen, sie ist nicht unbedingt nötig. Aber dann müsste man jedesmal wenn man die Grösse<br />
feststellen will immer wieder die Berechnung my.max-my.min durchführen. So spare ich mir das<br />
<strong>und</strong> schreibe es in einen Entity Skill.<br />
3.4 Die Funktion "Abstand_zum_Boden()"<br />
function Abstand_zum_Boden()<br />
{<br />
vec_set (temp,nullvector);<br />
vec_set(temp,my.x);<br />
temp.z -=4000;<br />
vec_set(temp_1,my.x);<br />
temp_1.z = my.z - ((my._entity_z)/2);<br />
trace_mode = ignore_me + ignore_sprites + ignore_models + scan_texture;<br />
// my._BODENHÖHE beinhaltet die Entfernung zum Boden<br />
my._BODENHÖHE = trace(temp_1,temp);<br />
<strong>3D</strong> GAMESTUDIO-Magazin ■ Ausgabe 05 | Juni 2007 │33