Le projet Delphi Game Engine contient plusieurs unités destinées à prendre en charge des contrôleurs de jeux (gamepad, joysticks, télécommandes, volants, pédaliers, ...) dans vos projets.
Bien entendu quand on parle de ce type de périphériques on pense aux jeux vidéo mais ça peut aussi servir en option d'accessibilité dans d'autres logiciels ou pour avoir des raccourcis matériels dans une interface utilisateur classique.
Gamolf.RTL.Joystick.pas contient la base à utiliser dans tous les projets. Elle fournit une interface à utiliser comme service de plateforme sur Firemonkey et un équivalent en VCL. On y retrouve aussi les composants TGamepad et TGamepadManager.
Gamolf.VCL.Joystick.pas permet l'autoréférencement de l'API DirectInput pour vos projets VCL sous Windows.
Gamolf.FMX.Joystick.pas permet l'autoréférencement de l'API dépendant de l'OS pour vos projets FireMonkey.
Pour Windows vous devez ajouter Gamolf.RTL.Joystick.DirectInput.Win.pas à vos projets VCL ou FireMonkey. Elle implémente la classe liée à l'interface travaillant avec l'API DirectInput de Microsoft.
Pour macOS vous devez ajouter les unités Gamolf.RTL.Joystick.Mac.pas et Macapi.GameController.pas à vos projets FireMonkey. Vous devez aussi avoir référencé le framework GameController dans votre SDK importé de Xcode.
Pour iOS ajoutez Gamolf.RTL.Joystick.Mac.pas et iOSapi.GameController.pas à vos projets. Vous devez aussi avoir référencé le framework GameController dans votre SDK importé de Xcode.
Pour le moment Android et Linux ne sont pas pris en charge, mais ça va arriver.
Les paquets de composants du projet Delphi Game Engine référencent TGamepadManager et TGamepad dans l'IDE en tant que composants non visuels. Ils sont utilisables sur vos projets VCL comme FireMonkey.
Des exemples sont proposés dans le dossier "samples/GameControllers" du dépôt de code. Vous pouvez aussi regarder comment j'ai intégré ces fonctionnalités dans mes jeux vidéos visibles sur GitHub.