La capture d'Entrée du Joystick dans le C ou le Java
J'ai besoin de saisir la connexion de la manette à l'aide de C ou Java (selon ce qui est le plus facile).
Il y a des réponses à des questions similaires, mais ils utilisent tous C++ ou C#.
Le programme n'a besoin que de la direction et le montant par lequel le levier de commande est incliné.
Je suis sous Windows7, donc je vais probablement besoin d'utiliser winmm.dll comme il est expliqué ici.
Je vous serais reconnaissant si quelqu'un pourrait expliquer comment le faire en C ou en Java.
Saviez-vous que la fonction fait l'accepté de répondre à vous lien est une fonction C?
OriginalL'auteur Richard | 2012-01-28
Vous devez vous connecter pour publier un commentaire.
Il y a premade bibliothèques pour les deux langues. La question la plus importante serait la langue que vous avez à utiliser ou à celle que vous préférez principalement. Il ne fait pas nécessairement sens d'ajouter le code C juste pour ajouter des fonctionnalités à un programme Java. D'une manière similaire, vous ne voulez pas appeler Java à partir de C, juste pour obtenir de l'entrée du joystick.
Premier succès sur Google pour "java joystick" a été cette une. N'ai pas encore essayé.
Comme pour le code C++ (et le plus probable, C# trop), vous devez être en mesure d'utiliser le même code en C, en supposant que c'est de la pure API Windows code (cause que l'on est en C aussi). Donc, vous ne devriez pas avoir de problèmes d'adaptation de ces.
Edit:
Quant à la réponse que vous avez lié: Vous devriez être en mesure d'utiliser cette solution de 1:1 dans C (en Java, vous devez écrire du code essentiellement de faire de même). Mais au lieu de déclarer tout vous-même, juste
#include <windows.h>
et vous devriez être prêt à aller (en C).OriginalL'auteur Mario
Je recommande le Simple Directmedia Layer bibliothèque pour un pur C de la solution. La bibliothèque est agréable à utiliser, et leur de la documentation et des exemples de code sont grands:
OriginalL'auteur blahdiblah
La C# solution est en effet pur de l'API Windows code!
Dans C juste
#include <windows.h>
et au lieu de[DllImport("winmm.dll")]
- vous un lien verswinmm.lib
. L'exemple suivant devrait préciser:Le Simple Directmedia Layer bibliothèque (suggéré par blahdiblah) semble également prometteuse, mais pour ce que je devais faire, je pense que le code ci-dessus est plus simple.
Pour Java utiliser le Centrale Nexus API comme suggéré par Mario. Le téléchargement contient de la documentation.
OriginalL'auteur Richard
L'échantillon que vous avez lié à n'en fait pas utiliser quoi que ce soit orientée objet, ce qui signifie que vous pouvez très facilement de port à C.
C prend en charge
struct
est la même qu'en C# (qui sont allouées sur la pile), donc c'est essentiellement de copier-coller.La seule chose qui pourrait vous passionner est le
[DllImport]
attribut. Le but de cet attribut est de p/invoke (platform invoke) non géré DLL à partir de l'intérieur gérés de code C#. Ici vous pourrez utiliserextern
pour accéder à l'API de Windows.OriginalL'auteur ose
Reportez-vous sur cette url pour le Gamepad.c et Manette de jeu.h fichiers.
https://github.com/elanthis/gamepad
Ouvrir le levier de commande à l'aide de
Définition De La Structure:
De l'ÉTAT est une structure de l'objet.
//C'est dans la Manette.h fichier
ouvrir retourne -1 en cas d'échec.
Définissez la valeur de l'indicateur (défini lors de la déclaration des variables pour manette de jeu) s'il a été ouvert avec succès.
Lire le levier de commande d'entrée à l'aide de
Définition De La Structure:
l'encéphalite japonaise est une structure de l'objet
//C'est dans joystick.h
l'encéphalite japonaise est maintenant à jour.
je.le type est l'un parmi les trois choses mentionnées dans la manette.h fichier d'en-tête
Si un bouton est enfoncé , puis je.nombre est un entier qui indique le numéro de la touche, comme spécifié par le fabricant. Si une manche est déplacé , alors je.nombre désigne l'axe de la spécification du fabricant.
La magnitude est présent dans le je.la valeur qui est attribuée à la baguette de la variable correspondante en conséquence.
OriginalL'auteur karthik r