Dieses Projekt ist archiviert. Es ist weder gepflegt noch mehr entwickelt.
Gewinnung
Gainput ist die fantastische C ++ - Eingabebibliothek für Ihr Spiel:
- Verwendet Ihre Eingangsanforderungen vom Lesen von Geräten auf niedrigem Niveau bis hin zu hochrangiger Zuordnung von benutzerdefinierten Schaltflächen
- gut dokumentiert, sauber, leicht und einfach zu bedienen
- Eine einheitliche Schnittstelle auf allen unterstützten Plattformen: Android NDK, iOS/TVOS, Linux, MacOS, Windows
- Unterstützte Geräte: Tastatur, Maus, Gamepad, Multi-Touch-, Geräte-in-Sensoren
- Open Source (MIT -Lizenz)
- Komplette Liste der Funktionen
- API -Dokumentation
Verwendung
# include < gainput/gainput.h >
enum Button
{
ButtonConfirm
};
gainput::InputManager manager;
manager.SetDisplaySize(displayWidth, displayHeight);
const gainput::DeviceId keyboardId = manager.CreateDevice<gainput::InputDeviceKeyboard>();
const gainput::DeviceId mouseId = manager.CreateDevice<gainput::InputDeviceMouse>();
const gainput::DeviceId padId = manager.CreateDevice<gainput::InputDevicePad>();
const gainput::DeviceId touchId = manager.CreateDevice<gainput::InputDeviceTouch>();
gainput::InputMap map (manager);
map.MapBool(ButtonConfirm, keyboardId, gainput::KeyReturn);
map.MapBool(ButtonConfirm, mouseId, gainput::MouseButtonLeft);
map.MapBool(ButtonConfirm, padId, gainput::PadButtonA);
map.MapBool(ButtonConfirm, touchId, gainput::Touch0Down);
while (running)
{
manager. Update ();
// May need some platform-specific message handling here
if (map. GetBoolWasDown (ButtonConfirm))
{
// Confirmed!
}
}Merkmale
- Bietet eine einheitliche Schnittstelle auf allen unterstützten Plattformen. (Einige geringfügige Änderungen sind erforderlich, um die Bibliothek einzurichten.)
- Bietet eine Schnittstelle mit niedrigem und hohem Niveau: Fragen Sie die Schaltflächen Status der Eingabegeräte direkt an oder kartieren Sie Geräteschaltflächen auf eine Benutzertaste. Auf diese Weise ist es einfach, alternative Eingänge zu unterstützen oder die Eingangszuordnungen später zu ändern.
- Unterstützt die Aufnahme und Wiedergabe von Eingabesequenzen.
- Verfügt über einen Netzwerkserver , um Informationen zu Geräten und Zuordnungen von zu erhalten.
- Zwei Gainput -Instanzen können Gerätezustände über das Netzwerk synchronisieren . Es ist auch möglich , Multi-Touch-Eingänge aus dem regulären Browser eines Smartphones zu erhalten.
- Vollständig in tragbarem C ++ geschrieben.
- Es wird kein STL verwendet. Es werden keine Ausnahmen geworfen. Es wird kein RTTI verwendet. Kein C ++ 11 und kein Boost .
- Es werden keine seltsamen externen Abhängigkeiten verwendet. Stützt sich auf die vorhandenen Plattform -SDKs.
- Einfach mit Ihrem bevorzugten IDE/Build -Tool eingerichtet und gebaut .
- Die Hörer können sowohl für Geräteschaltflächen als auch für Benutzerschaltflächen installiert werden. Auf diese Weise werden Sie benachrichtigt, wenn sich ein Knopfstatus ändert.
- Gesten ermöglichen es, komplexere Eingangsmuster zu erkennen, z. B. Doppelklicken, Klemm-/Rotationsgesten oder gleichzeitig mehrere Tasten.
- Ein externer Allocator kann in die Bibliothek geliefert werden, damit die gesamte Speicherverwaltung so erfolgt, wie Sie es möchten.
- Unterstützt die Roheingabe unter Linux und Windows.
- Das Rumpeln von Gamepad wird, soweit verfügbar, unterstützt.
- Es ist einfach, auf alle gedrückten Tasten zu suchen, so dass es einfach zu implementieren ist, den Spielern eine Möglichkeit zu bieten, ihre Tasten neu zu gestalten. Ebenso ist es einfach, Zuordnungen zu speichern und zu laden.
- Möglicherweise sind unnötige Funktionen wie Gesten oder der Netzwerkserver leicht deaktiviert.
- Totzonen können für jeden Float-Wert-Taste eingerichtet werden.
- Statusänderungen , dh wenn ein Knopf neu ist oder gerade veröffentlicht wird, kann es überprüft werden.
Gebäude
Standardmäßig wird Gainput mit CMake erstellt.
- Führen Sie
mkdir build - Führen Sie
cmake .. - Lauf
make - Die Bibliothek kann in
lib/ , den ausführbaren samples/ gefunden werden.
Beitragen
Jeder ist herzlich eingeladen, in die Bibliothek beizutragen. Wenn Sie Probleme finden, können Sie sie mit dem Github -Ausgabesystem einreichen. Wenn Sie Code beitragen möchten, sollten Sie das Projekt aufgeben und dann eine Pull -Anfrage senden.
Abhängigkeiten
Gainput hat eine minimale Anzahl externer Abhängigkeiten, um es so geschlossen wie möglich zu gestalten. Es verwendet die Standardmethoden der Plattformen, um Eingaben zu erhalten, und verwendet die STL nicht.
Testen
Im Allgemeinen sollte Tests durchgeführt werden, indem Sie auf allen unterstützten Plattformen das Verbreitung aufbauen und ausführen. Die Proben in den samples/ Ordner sollten verwendet werden, um festzustellen, ob die Bibliothek funktionsfähig ist.
Die Einheitentests im test/ Ordner werden vom normalen CMake -Build erstellt. Die ausführbare Datei befindet sich im test/ Ordner. Alle Build -Konfigurationen und Unit -Tests werden von Travis CI erstellt und durchgeführt, wenn etwas in das Repository gedrückt wird.
Alternativen