Frage

I verwenden Directeingabegeräte zu handhaben, I aufzuzählen Vorrichtungen und Elemente für jedes Gerät.

Bei Verwendung der Analog-Sticks auf meinem Gamepad, berichtet, dass sie Werte im Bereich von 0 bis 65.535. Ist das immer der Fall für alle Arten der absoluten Achse?

Wenn nicht: Gibt es eine Möglichkeit, die die Reichweite eines DX8 Eingangselement, um herauszufinden, DIDEVICEOBJECTDATA :: dwData (aufgezählt mit DIDFT_ABSAXIS)? Die einzige andere Option, die ich denken kann, ist eine hausgemachte interne Kalibrierung in meiner App zu verwenden und diesen Sound zu 80er Jahre um wahr zu sein.

War es hilfreich?

Lösung 2

Wie Goz so ist es süß setzen, habe ich die folgenden, die gearbeitet:

dev->EnumObjects(EnumElementsCallback, 0, DIDFT_ALL);

BOOL CALLBACK EnumElementsCallback(LPCDIDEVICEOBJECTINSTANCE dev, LPVOID)
{
    if ((dev->dwType & DIDFT_ABSAXIS) != 0)
    {
        DIPROPRANGE range;
        range.diph.dwSize = sizeof(DIPROPRANGE);
        range.diph.dwHeaderSize = sizeof(DIPROPHEADER);
        range.diph.dwHow = DIPH_BYID;
        range.diph.dwObj = dev->dwType;
        if (lDevice->mDIDevice->GetProperty(DIPROP_RANGE, &range.diph) == DI_OK)
        {
            ... = range.lMin;
            ... = range.lMax;
        }
    }
}

Andere Tipps

Können Sie das Angebot nicht erhalten mit GetProperty und vorbei in einer geeigneten DIPROPRANGE Struktur gefüllt werden? Verwenden Sie die DIPROP_RANGE GUID.

Von: http://www.wingmanteam.com/files/Tools /DXTweak/Readme.txt

Ein Spiel-Controller-Treiber in der Regel meldet Achsenpositionsinformation als ganzzahlige Werte zwischen 0 und 655 bis Direct. Directinput linear skaliert diese Werte bis zu 0 bis 65535.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top