Ce projet est archivé. Il n'est plus entretenu ni développé.
Gain
Gainput est la bibliothèque d'entrée C ++ impressionnante pour votre jeu:
- Traitement vos besoins en entrée de la lecture de l'appareil de bas niveau à la cartographie de haut niveau des boutons définis par l'utilisateur
- bien documenté, propre, léger et facile à utiliser
- Une interface unifiée sur toutes les plates-formes prises en charge: Android NDK, iOS / TVOS, Linux, MacOS, Windows
- Appareils pris en charge: clavier, souris, manette de jeu, multi-touch, capteurs intégrés de l'appareil
- Open source (licence MIT)
- Liste complète des fonctionnalités
- Documentation API
Usage
# 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!
}
}Caractéristiques
- Offre une interface unifiée sur toutes les plates-formes prises en charge. (Certaines modifications mineures sont nécessaires pour configurer la bibliothèque.)
- Fournit une interface de bas niveau et de haut niveau: interrogez directement les boutons des périphériques de saisie ou mappez les boutons de périphérique à un bouton utilisateur. De cette façon, il est facile de prendre en charge les entrées alternatives ou de modifier les mappages d'entrée plus tard.
- Prend en charge l'enregistrement et la lecture des séquences d'entrée.
- Fonctionne un serveur réseau pour obtenir des informations sur les appareils et les mappages à partir de.
- Deux instances de gainput peuvent synchroniser les états des périphériques sur le réseau . Il est également possible de recevoir des entrées multi-touchs du navigateur régulier d'un smartphone .
- Complètement écrit en C ++ portable.
- Aucun STL n'est utilisé. Aucune exception n'est lancée. Aucun RTTI n'est utilisé. Pas de C ++ 11 , et pas de boost .
- Aucune dépendance externe étrange n'est utilisée. S'appuie sur les SDK de la plate-forme existante.
- Configuration et construit facilement à l'aide de votre outil IDE / Build préféré.
- Les auditeurs peuvent être installés à la fois pour les boutons d'appareils ainsi que pour les boutons utilisateur. De cette façon, vous êtes informé lorsqu'un état de bouton change.
- Les gestes permettent de détecter des modèles d'entrée plus complexes, par exemple en double-cliquez, des gestes de pincement / rotation ou de la maintien de plusieurs boutons simultanément.
- Un allocateur externe peut être fourni à la bibliothèque afin que toute la gestion de la mémoire soit effectuée comme vous le souhaitez.
- Prend en charge l'entrée brute sur Linux et Windows.
- Le grondement de GamePad est pris en charge lorsqu'il est disponible.
- Il est facile de vérifier tous les boutons appuyés afin d'offrir un moyen aux joueurs de remédier à leurs boutons est facile à mettre en œuvre. De même, il est facile d'économiser et de charger des mappages.
- Les fonctionnalités peut-être inutiles, comme les gestes ou le serveur réseau, sont facilement désactivées.
- Les zones mortes peuvent être configurées pour n'importe quel bouton de valeur flottante.
- Les modifications de l'état , c'est-à-dire si un bouton est récemment en baisse ou simplement libéré, peut être vérifié.
Bâtiment
Par défaut, Gainput est construit à l'aide de CMake.
- Exécuter
mkdir build - Exécuter
cmake .. -
make - La bibliothèque se trouve dans
lib/ , les exécutables dans samples/ .
Contributif
Tout le monde est invité à contribuer à la bibliothèque. Si vous trouvez des problèmes, vous pouvez les soumettre à l'aide du système de problèmes de GitHub. Si vous souhaitez contribuer du code, vous devez débarquer le projet, puis envoyer une demande de traction.
Dépendances
Gainput a un nombre minimal de dépendances externes pour la rendre aussi autonome que possible. Il utilise les façons par défaut des plates-formes d'obtenir des entrées et n'utilise pas la STL.
Essai
Généralement, les tests doivent être effectués en construisant et en exécutant la gaine sur toutes les plates-formes prises en charge. Les échantillons dans les samples/ dossier doivent être utilisés afin de déterminer si la bibliothèque est fonctionnelle.
Les tests unitaires dans le test/ dossier sont construits par la construction Cmake normale. L'exécutable se trouve dans le test/ dossier. Toutes les configurations de construction et les tests unitaires sont construits et exécutés par Travis CI chaque fois que quelque chose est poussé dans le référentiel.
Alternatives