DInput: physisch gleiche Devices erkennen



  • Gut, dann bring' doch beim Konfigurieren der Steuerung eine Meldung wie: "Achtung! Ihr Tastendruck wurde auf zwei Geräten erkannt. Bitte wählen Sie aus, welches davon verwendet werden soll: [Liste der Geräte]". Das, was nicht verwendet werden soll, wird dann einfach aus der Liste gelöscht oder eben ignoriert.
    Das soll natürlich nur passieren, wenn der User beim Konfigurieren der Steuerung einen Knopf drückt, und dieser auf zwei DirectInput-Geräten registriert wird.



  • Im Fall vom Laptop sind es tatsächlich zwei Mäuse. Da müsste doch dein Wrapper richtig funktionieren. Am Computer zu Hause erkennt der Wrapper zwei Mäuse und benutzt die nächst Mögliche. Was ja kein Beinbruch ist, weil in real es nur eine Maus ist.

    Naja sind nur ein paar Gedanken. Vielleicht bringen sie dir was.



  • Original erstellt von <Gast>:
    Am Computer zu Hause erkennt der Wrapper zwei Mäuse und benutzt die nächst Mögliche. Was ja kein Beinbruch ist, weil in real es nur eine Maus ist.

    Aber die "nächstmögliche" ist eben immer eine "andere". Vielleicht brauch ich wirklich sowas, wie Tomas vorschlägt. Das bedeutet aber trotzdem unnötigen Aufwand, da man nach dem ersten Drücken noch einen Moment warten muss, ob noch woanders was registriert wird. Und ich fürchte auch öfters "Fehlalarme", wie eine Achse leicht bewegt. Aber wenns keine Möglichkeit gibt, das sicher festzustellen, brauchts wohl doch so'n "Hack".



  • Ich denke mal, dass ein Fehlalarm sehr unwahrscheinlich ist. Denn beide Geräte müssten ja bei DirectInput auch exakt dieselben Werte liefern, oder? Und bei Mäusen und Joysticks sind diese Werte ja immer so, dass man sie kaum mal durch Zufall erreichen kann.



  • Ich denke z.b. an einen Tastendruck, wo man ausversehen 2 Tasten erwischt. Maus schräg bewegen ist evtl. auch drin. Wasserdicht ist das also keinesfalls.



  • Verstehe ich nicht. Es ist doch egal, wie viele Knöpfe Du auf dem Gerät drückst. Hauptsache ist, dass der Wrapper merkt: Aha, auf dem Gerät X werden Knöpfe A, B und C gedrückt und die Achse D ist auf dem Wert 1481, und auf dem Gerät Y ist es genauso!



  • Könntest du nicht am Anfang irgendwie nen Test machen, und wenn sich bei einem simulierten Tastendruck mehr als ein Gerät meldet, dass du dann die anderen löschst?



  • Aber wie simuliert man eine Joystickbewegung?



  • Man könnte ja den benutzer auffordern alle Tasten/Bewegungen aller Eingabegeräte zu drücken/zu machen ;P



  • Also den Benutzer auffordern mal eben alles zu drücken ist ja wohl etwas umständlich!

    Original erstellt von DasPinsch:
    Könntest du nicht am Anfang irgendwie nen Test machen

    Eben, irgendsoetwas würde ich gerne tun. Wenn ich die DeviceObjekte gleich beim Init rausschmeisse, brauch ich mich später nirgendswo mehr drum zu kümmern. Irgendwelcher Code für 2 Tasten gleichzeitig fällt dann komplett flach. Wie man aber deinen speziellen Vorschlag nun genau umsetzen soll, weiss ich nicht. Habe noch nie bei DI eine Eingabe simuliert und wüsste auch nicht, wie das gehen soll.

    Werde wohl doch speziellen Code schreiben müssen, um diesen Fall immer zu umgehen.

    Bye, TGGC


Anmelden zum Antworten