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"
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.
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"
Schau dir mal das XNA Framework an. Dort müsste man das GamePad einlesen können.
Martin Bauer - bauer-martin.com
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.
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"
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
XNA Framework
Leider von hause aus nur den XBox Controller.
Jo; kannst dir aber mal SlimDX angucken.
wenn dirs vllt aufgefallen ist, der link verweist auf eine Anleitung wie man einen Joistick bzw. ein Gamepad mit SlimDX abfragen kann
Ich habe auch eine Gamepad-Ansteuerung für C# gesucht und ein interessantes Projekt gefunden:
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