Mit den folgenden Funktionen kannst du in deinem Spiel Mausgeräte über die Game Controller-Bibliothek. Mit dem Begriff Mausgeräte beschreiben wir herkömmlichen Mäusen sowie Touchpads oder Trackballs.
Callback für den Mausstatus hinzufügen
Die Game Controller-Bibliothek verwendet einen Mausstatus-Callback, um ein Spiel zu benachrichtigen, wenn ein Die Maus ist verbunden oder nicht verbunden. Es wird nur ein Callback für den Mausstatus unterstützt. auf einmal ansehen.
- Registrieren eines Mausstatus-Callbacks oder Ersetzen eines zuvor registrierten
mit einer neuen Callback-Funktion aufrufen,
Paddleboat_setMouseStatusCallback
-Funktion. - Um einen derzeit registrierten Callback zu entfernen, übergeben Sie
NULL
odernullptr
imstatusCallback
-Parameter. - Der Parameter
userData
ist ein optionaler Zeiger auf benutzerdefinierte Daten. Die Der ParameteruserData
wird an die Callback-Funktion übergeben. Dieses Zeiger wird intern beibehalten, bis er durch einen anderen Aufruf von geändert wird.Paddleboat_setMouseStatusCallback
void Paddleboat_setMouseStatusCallback(Paddleboat_MouseStatusCallback
statusCallback, void *userData)
Die Funktionssignatur der Mausstatus-Callback-Funktion lautet:
typedef void (*Paddleboat_MouseStatusCallback)(const Paddleboat_MouseStatus
mouseStatus, void *userData)
Der enum-Parameter mouseStatus
hat drei mögliche Werte:
PADDLEBOAT_MOUSE_NONE
: Momentan ist keine Maus verbunden.PADDLEBOAT_MOUSE_CONTROLLER_EMULATED
: Ein verbundener Controller simuliert eine Simulation. mit der Maus.PADDLEBOAT_MOUSE_PHYSICAL
: Mindestens ein physisches Mausgerät ist verbunden. (Zu diesen Geräten gehören eine Maus, ein Touchpad, ein Trackball oder ähnlichen Geräten.
Der Parameter userData
enthält den userData
-Zeiger, der im letzten
an Paddleboat_setMouseStatusCallback
. userData
kann NULL sein oder
nullptr
.
Nicht alle Controller simulieren eine Maus. Controller können eine Maus mit einem der Analogsticks oder mit integriertem Touchpad.
Die Game-Controller-Bibliothek erfasst nur Daten von einem einzelnen Mausgerät. Physische Mausgeräte haben Vorrang vor virtuellen Controller-Mausgeräten. Wenn ein physische Maus verbunden ist, übernimmt sie die Aufgabe aller zuvor aktiven virtuellen Controllermaus.
Mausdaten lesen
Rufen Sie die Funktion Paddleboat_getMouseStatus
auf, um den Status des Mausgeräts abzurufen.
Paddleboat_MouseStatus Paddleboat_getMouseStatus()
Verwenden Sie den Paddleboat_getMouseData
.
, um die aktuellen Mausdaten abzurufen. Diese Funktion gibt
PADDLEBOAT_NO_ERROR
, wenn Daten erfolgreich gelesen werden, andernfalls ein
wird der entsprechende Fehlercode zurückgegeben.
bool Paddleboat_getMouseData(Paddleboat_Mouse_Data *mouseData)
Die Struktur Paddleboat_Mouse_Data
enthält Informationen zu:
- Zeitstempel des letzten Mauseingabeereignisses
- Die aktuelle Zeigerposition
- Tastenstatus
- Status der Mausräder
struct Paddleboat_Mouse_Data {
uint64_t timestamp;
uint32_t buttonsDown;
int32_t mouseScrollDeltaH;
int32_t mouseScrollDeltaV;
float mouseX;
float mouseY;
}
Gebäudemitglied | Beschreibung |
---|---|
timestamp
|
Zeitstempel des letzten Mauseingabeereignisses. Der Zeitstempelwert wird seitdem in Mikrosekunden angegeben. Epoche. |
buttonsDown
|
Bitfeld, jedes Bit ab Bit 0 steht für den Status einer Schaltfläche, falls festgelegt. |
mouseX mouseY
|
Mausposition in Pixelkoordinaten.
Positionskoordinaten haben einen Bereich von 0.0 bis
Bildschirmbreite und -höhe anpassen. |
mouseScrollDeltaH mouseScrollDeltaV
|
Die Anzahl der kumulativen Ereignisse mit dem Scrollrad der Maus :
seit dem vorherigen Anruf bei
Paddleboat_getMouseData Diese Werte sind nicht
die garantiert präzise sind, nur um
Scrollrad-Aktivität in einem
in eine bestimmte Richtung weisen. Die meisten Mäuse haben eine Eins
mit dem Mausrad, das in den
mouseScrollDeltaV Wenn eine Maus eine Seite hat
mit dem Mausrad angezeigt wird,
mouseScrollDeltaH Diese Werte werden zurückgesetzt auf
0 intern nach einem Anruf bei
Paddleboat_getMouseData . |
Die Game Controller-Bibliothek definiert Bitmaskenkonstanten für Maustasten in der
paddleboat.h
-Schnittstellenheaderdatei:
enum Paddleboat_Mouse_Buttons {
PADDLEBOAT_MOUSE_BUTTON_LEFT = (1U << 0),
PADDLEBOAT_MOUSE_BUTTON_RIGHT = (1U << 1),
PADDLEBOAT_MOUSE_BUTTON_MIDDLE = (1U << 2),
PADDLEBOAT_MOUSE_BUTTON_BACK = (1U << 3),
PADDLEBOAT_MOUSE_BUTTON_FORWARD = (1U << 4),
PADDLEBOAT_MOUSE_BUTTON_6 = (1U << 5),
PADDLEBOAT_MOUSE_BUTTON_7 = (1U << 6),
PADDLEBOAT_MOUSE_BUTTON_8 = (1U << 7)
};
Physische und virtuelle Mausgeräte
Ein Paddleboat_MouseStatus
von PADDLEBOAT_MOUSE_CONTROLLER_EMULATED
bedeutet,
dass keine physische Maus vorhanden ist und die Game Controller-Bibliothek
Simulation einer virtuellen Maus mit einem verbundenen Controller Niedrigste verbundene
Controller-Index mit gesetztem Flag PADDLEBOAT_CONTROLLER_FLAG_VIRTUAL_MOUSE
ist
die als virtuelle Maus verwendet wird. Virtuelle Mausgeräte werden nur
Koordinaten mouseX
und mouseY
. Virtuelle Mausgeräte melden möglicherweise das Drücken von
mit einer einzigen (linken) Maustaste, dies ist jedoch nicht garantiert.