|
Inhalt
Vorwort
Vorbereitungen
treffen...
Variablen
und eine Funktion zur Bewegung
Die
KI
Feinschliff
Variablen und eine Funktion zur Bewegung
![]()
Zuerst legen wir mal ein paar Variabelen fest mit denen wir Geschwindigkeit
u.Ä. definieren.
if (speed == null) {
speed = 2;
sametimer == 0;
zind = null;
rind = null;
lastr = null;
}
current_r = getProperty("/tier",_rotation);
speed gibt die Geschwindigkeit in Koordinaten an. D.h. unser Tier bewegt
sich um zwei Koordinaten in dem Koordinatensystem von Flash weiter.
sametimer wird später benötigt damit sich unser Tier für
eine gewisse Zeit in die selbe Richtung dreht. aber nicht zu lange! zind
dient hier nicht zum sog. Z-Sorting sondern
wird benötigt um später zu definieren ob sich das Tier nach links
oder rechts bewegt. rind dient dazu einen Wert zu dem derzeitigen _rotation-Wert
zu adieren. So entsteht dann eine Drehung.
lastr speichert den letzten _rotation-Wert
den wir benutzt haben.
curren_r hält für uns den derzeitigen _rotation-Wert
fest. Da wir ja weder ein Spiel programmieren oder Gefühle einbauen
wollen (was sicherlich noch interessanter wäre, aber nicht in eine art
Einführung passt) brauchen wir nicht mehr Variablen.
Jetzt sollten wir uns dieser Funktion zuwenden:
function bewegen(rotation) {
current_x = getProperty("/tier",_x);
current_y = getProperty("/tier",_y);
new_x = speed*Math.cos(Math.PI/180*rotation);
new_y = speed*Math.sin(Math.PI/180*rotation);
setProperty("/tier",_x,current_x+new_x);
setProperty("/tier",_y,current_y+new_y);
setProperty("/tier",_rotation,rotation);
}
Der Wert rotation wird dann benötigt wenn wir angeben wie weit
das Tier sich drehen soll. current_x und current_y gebn die derzeitigen
Koordinaten für uns wieder.
Bei new_x und new_y wird es dann schon wider einen Happen schwieriger.
Aber da ich denke das die meißten wissen was Sinus und Cosinus sind. Die
Formel PI geteilt durch
180 mal einen Winkel dient zum umrechnen von Radianten in Grad. Denn Flash berechnet
den (Co)Sinus in Radianten. Bei setProperty(...) werden dem Tier dann die neuen
Koordinaten und der Winkel
zugewiesen. Schon habe wir eine Funktion geschrieben die es uns ermöglicht
unser Tier in einem Ramen von 0-360° zu bewegen.
Zum testen könnte man jetzt einfach in das Aktionsfenster noch bewegen(0);
schreiben und unser Tier bewegt sich geradeaus vorwärts. Doch jetzt kommen
wir zum spannenden Teil.
![]()
![]()
![]()