Laden...

Einlesen der X und Y Achsenrotation sowie der Buttons eines Gamepads

Erstellt von Peter St. vor 14 Jahren Letzter Beitrag vor 14 Jahren 4.755 Views
P
Peter St. Themenstarter:in
3 Beiträge seit 2009
vor 14 Jahren
Einlesen der X und Y Achsenrotation sowie der Buttons eines Gamepads

Mein Problem ist ein (hoffentlich) einfaches Anfängerproblem.

Ich bin schon seit Tagen auf der Suche nach einer Möglichkeit, die X und Y Achsenrotation sowie die Buttons eines Gamepads einzulesen, um damit eine Maus zu simulieren bzw. für spätere Programme zu verwenden.

Kurz: Wie lese ich die Achsenrotationen eines Gamepads, und die Buttons ein.

Ausserdem wollte ich wissen, ob es Mouse.SetPoint(X-wert,Y-Wert) gibt, fals ja, in welcher Klasse. Der Befehl sollte dann den Mauszeiger zu der geforderten X und Y Position bewegen.

mfg
Peter

Ordentliche Menschen sind selten genial
Geniale Menschen sind selten ordentlich
Nur der dumme braucht die Ordnung
Das Genie beherrscht das Chaos

"Albert Einstein"

I
32 Beiträge seit 2007
vor 14 Jahren

Hallo,

ganz bin ich mir nicht sicher aber DirectX sollte dir mit dem GamePad-Problem helfen. (DirectInput)
Habe bis jetzt nur 3D Programierung gemacht und DirectX für die Schnittstelle zu der GPU genutzt, kann mir aber vorstellen das es auch genau so schnittstellen für InputDevices gibt.

P
Peter St. Themenstarter:in
3 Beiträge seit 2009
vor 14 Jahren

Ich muss mich entschuldigen. Ich habe meine Frage nicht genau genug formuliert.

Ich will den X und Y Achsenwert des Gamepads einlesen, wobei dieser zwischen 0 oder 1 liegen sollte (auch Dezimal).

Auch wollte ich fragen, ob es vl. eine andere Möglichkeit gibt, das einzulesen, weil ich DirectX nicht sehr bewandert bin, und mir nicht das ganze einlernen will, nur wegen dem Gamepad.

Ordentliche Menschen sind selten genial
Geniale Menschen sind selten ordentlich
Nur der dumme braucht die Ordnung
Das Genie beherrscht das Chaos

"Albert Einstein"

G
146 Beiträge seit 2006
vor 14 Jahren

Schau dir mal das XNA Framework an. Dort müsste man das GamePad einlesen können.

Martin Bauer - bauer-martin.com

I
32 Beiträge seit 2007
vor 14 Jahren

Ich will den X und Y Achsenwert des Gamepads einlesen, wobei dieser zwischen 0 oder 1 liegen sollte (auch Dezimal).

Und genau dafür ist die DirectInput Klasse von DirextX da. -> MSDN: DirectInput

Groß einlesen muss man sich da nicht, denke ich. DirextX ist da recht komfortabel und ein einfacher weg fällt mir nicht ein.
XNA Denke ich benutzt dann auch DirectX. Vill noch ein wenig Abstrakter. Aber warum sollte ich nur um ein GamePad auszulesen gleich zu viel Overflow schaffen.

Peter St., da du diese Metodik auch für spätere Programme nuetzen willst würde ich mich einlesen und es dann gleich richtig Umsetzen.

P
Peter St. Themenstarter:in
3 Beiträge seit 2009
vor 14 Jahren

Gibt es da auch eine Möglichkeit in C#, da meine Wenigkeit nur das beherrscht, und die Beispiele scheinbar alle in C++ und C gehalten sind.

Kann natürlich auch sein, dass ich den Code einfach noch nicht verstehe, weil ich einfach erst im September 08 angefangen habe zu programmieren.

mfg
Peter

@ inuki: Danke für den Link. Wie schon gesagt, glaube ich halt, dass das C++ oder C ist, und ich beherrsche beide Sprachen (noch) nicht.

Ordentliche Menschen sind selten genial
Geniale Menschen sind selten ordentlich
Nur der dumme braucht die Ordnung
Das Genie beherrscht das Chaos

"Albert Einstein"

1.346 Beiträge seit 2008
vor 14 Jahren

Schau dir mal das XNA Framework an. Dort müsste man das GamePad einlesen können.

Leider von hause aus nur den XBox Controller.

Gruß pdelvo

L
95 Beiträge seit 2009
vor 14 Jahren
M
120 Beiträge seit 2009
vor 14 Jahren

XNA Framework

Leider von hause aus nur den XBox Controller.

Jo; kannst dir aber mal SlimDX angucken.

L
95 Beiträge seit 2009
vor 14 Jahren

wenn dirs vllt aufgefallen ist, der link verweist auf eine Anleitung wie man einen Joistick bzw. ein Gamepad mit SlimDX abfragen kann

79 Beiträge seit 2007
vor 14 Jahren

Ich habe auch eine Gamepad-Ansteuerung für C# gesucht und ein interessantes Projekt gefunden:

SlimDX

What is SlimDX?

SlimDX is a free open source framework that enables developers to easily build DirectX applications using .NET technologies such as C#, VB.NET, and !IronPython. It is designed to be an efficient, simple, and lean wrapper that fully encompasses all of Microsoft's gaming and multimedia technologies and exposes them to managed code. All of the code is under the MIT/X11 license, and all content is under the Creative Commons Attribution-Share Alike license.

Kurz gesagt:
Eine praktische Bibliothek, mit der man u.a. recht einfach über DirectX auf Gamepads zugreifen kann.
Die MIT-Lizenz erlaubt auch die Einbindung in kommerzielle Projekte. (Soweit ich weiß. Sollte ich falsch liegen, bitte korrigieren.)

Im download Developer SDK sind auch Beispiele enthalten.
Eins bezüglich Gamepads ist im Verzeichnis
...\SlimDX SDK (August 2009)\Samples\DirectInput\Joystick
Es fragt die Zustände aller angeschlossenen Gamepads ab und zeigt sie in einer GUI.

Den Code vom Beispiel habe ich teilweise übernommen und kann jetzt mit meinem eigenen Programm mein Gamepad abfragen. Das "Einbauen" des Codes ging relativ schnell und funktioniert prima (-:

Download hier:
http://slimdx.org/download.php