Maus-Y-Achse invertieren
-
Hey!
In einem Flugspiel gibt es die Option "Maus-Höhenruder invertieren" welches die Y-Achse invertiert, so kann ich besser das Raumschiff steuern (Invertiert im Spiel ist dann wie normal, rauf ist rauf, runter ist runter).
Leider hat diese Funktion einen Fehler. Wenn ich die Maus ganz langsam nach unten bewege, bewegt sich das Schiff aber rauf. Erst wenn ich schneller nach unten bewege bewegt sich das Schiff nach unten.Deshalb möchte ich nun auf diese Funktion verzichten und extern die Y-Achse invertieren. Ideen? Das Spiel verwendet DirectInput also wirds wohl nix mit Get/SetCursorPos...
Danke!
MfG
-
Frage mich wie man so eine leichte Funktion falsch/verbuggt implementieren kann...
Zu deiner Frage: Wird wohl nur durch einen Hook der entsprechenden API klappen.
[EDIT]: Noch eine Idee ... Vielleicht kannst du auch den ProcessMemory patchen, und so einfach die Steuerung ändern. Das würde ich zuerst probieren, weil mir das wesentlich einfacher erscheint.
-
Ich kann dir zwar deine Frage nicht beantworten, aber eine kleine Gegenfrage aus eigener Erfahrung: Hast du zufällig noch ein weiteres Eingabegerät, z.B. einen schlecht kalibrierten Joystick, angeschlossen? Dies könnte solch ein Verhalten erklären.
-
Ja, frag ich mich auch
Hmm, hab's mit...
http://www.download.com/SakasaMouse/3000-2056_4-10553398.html
...versucht. Klappt leider nicht ingame.Und das...
http://www.maf-soft.de/mafmouse/
...kostet was.MfG
-
Ne, Sepp. Hab ich nicht...
Problem tritt nur mit aktivierter Ingame-Invertfunktion auf.MfG
-
Nach weiterer Überlegung erscheint es mir doch nicht mehr so leicht einfach den ProcessMemory zu patchen .. aber die beiden Möglichkeiten gibt es prinzipiell ... ob ich das selber hinbekommen würde kann ich nicht sagen.
[EDIT]: @Inverter: Ist das/der Spiel/Simulator Freeware? Dann würd ich mich gern mal dran ausprobieren.
Gibt es zu deiner Maus keinen Treiber?
-
Ne, ist nicht Freeware. Ich schau gerade ob ich vielleicht irgendwo eine Invertierung festlegen kann, hooken sollte kein Problem sein (DirectInput8Create):
http://doc.51windows.net/Directx9_SDK/input/directinputroadmap.htm
MfG
-
Treiber, wär auch ne Idee
Ich such mal nach ner CD wobei ich mir sicher bin diese verworfen zu haben, nie gebraucht sowas...MfG
-
Der Treiber kann vermutlich nicht mal invertieren. Hab ne MX518 Maus.
Urks, das Spiel ist ja schon sehr alt, verwendet noch die Funktion "DirectInputCreateA()"...
Welche Version könnte das sein? Außerdem brauche ich die headers/libs...
MfG
-
Mist, IDirectInputA::CreateDevice() wird mit GUID_SysMouse aufgerufen, von IDirectInputDeviceA scheint aber keine einzige Funktion aufgerufen zu werden.
Aber die 8er Version kann es doch nicht sein, da DirectInputCreate() verwendet wird, hmm...
-
IDirectInputA::Initialize() wird nicht aufgerufen, könnte es sein dass die Programmierer da selbst was zusammengefrickelt haben ohne IDirectInputDeviceA::GetDeviceData/State() zu verwenden?
MfG
-
Oh, das Spiel nutzt DirectInput 5
Nun, an die Daten komme ich nun allerdings scheiter ich am analysieren, ist echt nicht einfach. Die Daten ändern sich manchmal einfach so wenn man nix macht und obwohl ich nur das GUID_SysMouse device hooke ändern sich die Daten auch mit den Pfeiltasten (Vielleicht ein Device zum Steuern des Raumschiffs und eins für's Menü, kA).
Naja, habs mir leichter vorgestellt. Daten für die Y Achse kann ich nicht herauslesen...Vielleicht gibts ja doch ne andere Möglichkeit...
-
angeblich kann "Logitech MouseWare" das in der Version 9.41.3 ... später nicht mehr ... allerdings konnte ich keinen entsprechenden Download finden, auch auf dem FTP-Server von logitech nicht!
-
Inverter schrieb:
Oh, das Spiel nutzt DirectInput 5
welches spiel denn?
-
X - Tension
Hab's aber aufgegeben, ständig Treiber wechseln ist mir zu umständlich und zwischen Treiber und DirectInput gibt's ja nix.
Die verwenden anscheinend ein eigenes DIDATAFORMAT welches mir total konfus erscheint.MfG