Mausbewegung erfassen WM_MOUSESTOP?



  • Hi Leute,

    wie Ihr vielleicht in einem meiner früheren Posts gelesen habt, progge ich gerade eine Art von Mohrhuhngame. Ich habe mir überlegt, dass es nicht schlecht wäre dem Fadenkreutz/Gewähr eine realistisch Bewegung zu geben. Dh am Anfang der Bewegung soll das fdnKreutz langsam sein und dann im Laufe der Bewegung beschleunigen. Das fdnKreutz wird aber von der Mausgesteuert. Um das obige zu erreichen hab ich mir folgende ansätze ausgedacht:
    Möglichkeit 1)
    Die Physische-Mausgeschwindigkeit wird im Takt eines Timers Inkrementiert. Der Timer wird mit Anfang der Mausbewegung gesetzt und mit deren Stop wider gestoppt und gleichzeitig die Mausgeschwindigkeit auf den Startwert gesetzt. Da ich leider weder die Funktion für die Mausgeschwindigkeit kenne, noch die Nachrichten die den Anfang und Ende einer Mausbewegung signalisieren ist diese Methode bissher gescheitert.
    Möglichkeit 2)
    Die gleiche wie nr1 mit dem Unterschied, dass die Physikalische Mausgeschwindigkeit nicht verändert wird, sondern ledeglich im Timertakt ein offset zu der Aktuellen fdnKreutzposition hinzugerechent wird.

    Beide Methoden brauchen jedoch Nachrichten (oder eine andere Möglichkeit) den Timer mit dem start der Mausbewegung zu starten und mit dessen Ende wider zu stoppen.

    Kann mir jemand helfen?

    für Eure Antwort wäre ich sehr dankbar 🙂

    gruss 🙂



  • Wenn du bei WinAPI-Mitteln bleiben willst, muss du wohl WM_MOUSEMOVE abfangen und dann eben den Verlauf (zumindest die vorhergehende Position) speichern - dann kannst du ja schauen, wie weit die Maus relativ bewegt wurde und in welcher Zeit 🙂

    Ich hoffe, ich habe überhaupt dein Problem verstanden 😃



  • Danke für Deine Antwort 🙂

    flenders schrieb:

    ..., muss du wohl WM_MOUSEMOVE abfangen und dann eben den Verlauf (zumindest die vorhergehende Position) speichern - dann kannst du ja schauen, wie weit die Maus relativ bewegt wurde und in welcher Zeit 🙂

    Hmm..., naja das ist ja grad das Problem: Ich will den timer mit der Anfang der Bewegung starten und mit dem Ende der Bewegung stopen. Ist das machbar? Bei Tasten kann man ja hierzu KEYDOWN und KEYUP nutzen. Doch bei der Mausbewegung gibts ja kein STARTMOVE ENDMOVE. Ist das dennoch irgendwie zu machen?

    mfg



  • Naja, wann ist denn eine Mausbewegung zu Ende? Du kannst eben schauen, ob eine zeitlang keine WM_MOUSEMOVE-Messages mehr kommen 😉


Anmelden zum Antworten