# Variablen und Arrays

Variablen sind zur Speicherung von Zahlenwerten gedacht. Zahlen werden im 3D Gamestudio mit einem Festkomma (6 Stellen vor und 3 Stellen nach dem Komma) dargestellt und werden automatisch an dieser Stelle abgerundet. Sie können Werte von maximal 999999.999 und minimal -999999.999 annehmen. Werden diese Werte über- bzw. unterschritten wechselt das Vorzeichen, was zu Rechnungsfehlern führt.

Deklariert wird eine Variable wie folgt:

`var name;` | // diese Form der Deklarierung, erzeugt eine Variable
`var name = wert;` | // und diese Form eine Variable mit einem Wert.

Findet die Deklarierung einer Variablen außerhalb einer Funktion oder Aktion statt, kann sie von allen Funktionen und Aktionen benutzt werden (globale Variable).

Findet die Deklarierung innerhalb einer Funktion oder Aktion statt, ist sie nur hier bekannt und kann auch nur hier benutzt werden (lokale Variable).

Existiert eine lokale Variable mit dem gleichen Namen wie eine globale, so hat die lokale innerhalb der betreffenden Funktion oder Aktion Vorrang.

Wenn mehrere derselben Funktion oder Aktion gleichzeitig laufen, wie im Falle von z.B. Objekt-Aktionen, so hat jede Aktion seine eigenen unabhängigen lokalen Variablen.

Jedes Objekt und auch Partikelteile haben schon vordefinierte frei verwendbare Variablen.

`my.skill1 = 10; // Objekt
my.skill_a = 10; // Partikel`

Sollen mehrere Variablen unter dem gleichen Namen zusammengefasst werden, benutzt man Arrays:

`var name[n];` | // Definiert eine Variable, die "n" von Zahlen enthält
`var name[n] = wert1, wert2;` | // wie oben, nur werden hier gleich Werte mit übergeben

Wenn "n" = 5 ist, kann über "name[0]" bis "name[4]" die Variablen angesprochen werden.

Merke: Der Index beginnt bei Null und endet bei n-1.

Die Länge "n" des Arrays, kann mit name.length abgefragt werden. Hierfür ein Beispiel welches alle 9 Variablenwerte auf 10 setzt:

`

    var x = 0;
    var feld[9];
    while (x < feld.length)
          {
          feld[x] = 10;
          x += 1;
          }

`

Da Arrays für Vektoren, Eulerwinkel oder für Farbwerte (rot, grün, blau) benutzt werden können, kann auf das Array auch wie folgt zugegriffen werden:

`var x = name[3];
name[0] == name.x == name.pan == name.blue
name[1] == name.y == name.tilt == name.green
name[2] == name.z == name.roll == name.red`