Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Referenz - GETJOYSTICK

Referenz-Navigation

 

Syntax: GETJOYSTICK (id, buttons[, [x][, [y][, [z][, [r][, [u][, v]]]]]])
Typ: Funktion
Kategorie: Benutzereingabe

GETJOYSTICK gibt die Position des Joysticks oder des Gamepads und den Status seiner Buttons zurück.

Sobald GETJOYSTICK aufgerufen wird, speichert es den aktuellen Status der Joystick-Achsen und -Buttons in den Speicherstellen, deren Adressen übergeben wurden. Die Buttons-Speicherstelle muss dabei vom Typ BefehlsreferenzeintragINTEGER sein. Die Informationen zu den Achsen werden relativ zum Vollausschlag in BefehlsreferenzeintragSINGLE-Variablen gespeichert. Das Ergebnis -1.0 entspricht dabei einem Vollausschlag nach links (für x) oder nach vorne (für y); +1.0 bedeutet entsprechend einem Vollausschlag nach rechts oder hinten. 0.0 steht bei allen Achsen für die Ruheposition.

Ein Joystick wird immer zumindest die x- und y-Achsen unterstützen, manche Controller bieten aber noch zusätzliche Achsen. Wenn eine Achse nicht unterstützt wird, schreibt FreeBASIC an die entsprechende Speicherstelle den Wert -1000.00. Wenn der Joystick mit der angegebenen ID nicht verfügbar ist, gibt FreeBASIC -1 bei den Buttons zurück und alle Achsen liefern den Wert -1000.00.

Beispiel:

SCREENRES 640, 400

DIM AS SINGLE x, y
DIM AS INTEGER buttons, result, i

CONST JoystickID = 0

' Prüfe, ob die Joystick-Abfrage arbeitet:

IF GETJOYSTICK(JoystickID, buttons, x, y) THEN
   PRINT "Joystick existiert nicht, oder ein Fehler ist aufgetreten."
   PRINT
   PRINT "Beliebige Taste drücken um fortzusetzen"
   SLEEP
   END
END IF


DO
   GETJOYSTICK JoystickID, buttons, x, y
   LOCATE 1,1
   PRINT USING "x: +#.### y: +#.### Buttons: #### "; x; y; buttons
   ' Zeige an, welche Buttons gerade gedrückt werden:
   FOR i = 0 TO 26
      IF (buttons AND (1 SHL i)) THEN
         PRINT "Button ";i ;" gedrueckt.      "
      ELSE
         PRINT "Button ";i ;" nicht gedrueckt."
      END IF
   NEXT
' Bei Tastendruck beenden.
LOOP UNTIL LEN(INKEY)

Wie man sieht, muss der Funktionswert nicht abgefragt werden; GETJOYSTICK kann auch als Anweisung eingesetzt werden. In diesem Fall entfallen die Klammern, und der Rückgabewert geht verloren.

Unterschiede zu QB: neu in FreeBASIC

Unterschiede zu früheren Versionen von FreeBASIC:

Unterschiede unter den FB-Dialektformen:
In der Dialektform Befehlsreferenzeintrag-lang qb steht GETJOYSTICK nicht zur Verfügung und kann nur über __GETJOYSTICK aufgerufen werden.

Siehe auch:
BefehlsreferenzeintragGETMOUSE, BefehlsreferenzeintragGETKEY, BefehlsreferenzeintragBenutzereingaben


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 29.07.2007 von RedakteurJojo angelegt.
  • Die aktuellste Version wurde am 15.08.2012 von Redakteurnemored gespeichert.
  Versionen Versionen