# JOYSTICKS

`

    FUNCTION Joy1Taste_1()
    	{
    	// Dieser Block wird abgearbeitet wenn die Joysticktaste 1 gedrückt wird
    	}

    on_joy1 = Joy1Taste_1;

`

Mit dem Funktionspointer ON_ANYKEY werden alle Tasten der Tastatur, Maus und des Joysticks einer Funktion zugewiesen werden.

Eine weitere Möglichkeit, einer Taste, eine Funktion zuzuweisen, besteht mit dem Befehl

KEY_SET (scancode, function);

Dieser Befehl weist der Taste mit dem Scancode, die angegbebe Funktion zu.

Soll überprüft werden, ob z.Z. eine Taste gedrückt ist, so kann das Flag KEY_ANY hierzu abgefragt werden.
Der Scancode der zuletzt gedrückten Taste steht in der Variablen KEY_LASTPRESSED

Die Funktion KEY_PRESSED (Scancode); liefert einen Flag zurück, das je nachdem ob die Taste mit dem angegebenen Scancode gedrückt wurde, auf "on" oder "off" steht.

Sollen die Fuktionsaufrufe unterbunden werden, so setzt man das Flag ENABLE_JOYSTICK auf "off".

Die Variable NUM_JOYSTICKS liefert die Zahl der angeschlossenen Joysticks wieder: ``

    if (NUM_JOYSTICKS == 0) {// kein JOYSTICK installiert}
    if (NUM_JOYSTICKS == 1) {// ein JOYSTICK installiert}
    if (NUM_JOYSTICKS == 2) {// zwei JOYSTICKS installiert}

## Joystickstellung

Mit den beiden Vektoren JOY_RAW und JOY_ROT können die 6 Achsenpositionen des ersten Joysticks festgestellt werden. Hierbei werden Werte zwischen -255 und +255 zurück gegeben. Der Z-Wert liefert den Throttle (Gaspedal) wieder. JOY_ROT ist bei einem Game-Pad, der rechte Stick und JOY_RAW der linke Stick. ``

    Action joystick
    	{
    	while(1)
    		{
    		my.x += JOY_ROT.x/255;
    		my.y += JOY_ROT.y/255;
    		my.z += JOY_RAW.z/255;
    		wait(1);
    		}
    	}

Für einen zweiten Joystick gilt das gleiche für die Vektoren JOY2_RAW und JOY2_ROT.

Das Array JOY_FORCE liefert von Joystick1 Stick1 die beiden Achsenpositionen x und y mit den maximal Werten von -2 bis +2.