Ego-Shooter Maus Handling



  • Hi,

    ich versuche gerade das Maus Handling von Ego Shootern umzusetzen. Dh die Maus wird vom Fenster "gehijacked", im Fenster zentriert und dort behalten. Mausbewegungen werden dann in eine Bewegung der Kamera umgesetzt.

    Mein Herangehen war es die WM_MOUSEMOVE events aufzuzeichnen, die Differenz zwischen der neuen, aktuellen Mausposition und der letzten Mausposition zu bilden und auf einen Akkumulator aufzuaddieren. Danach würde ich die Position der Maus mit SetCursorPos ins Zentrum des Fensters setzend und die Koordinaten der Maus als alte Mausposition speichern.

    Nur scheint mir, entgegen meiner Erwartungen, SetCursorPos ein WM_MOUSEMOVE Event auszulösen. Mein Programm macht nun nichtsmehr außer WM_MOUSEMOVE Events abhandeln.
    Ich habe versucht andere Lösungsansätze als meinem mithilfe von google zu finden, allerdings war der einzige andere Lösungsansatz, der die Message Queue verwendet exakt der selbe wie ich ihn habe - warum seine Implementaion funktionieren soll, aber meine das nicht tut ist mir allerdings ein Rätsel.

    Gibt es irgendwelche Vorschläge oder Ideen?



  • Am Besten keine WM verwenden?



  • While DirectInput is a part of the DirectX library, it has not been significantly revised since DirectX 8. It should be noted that Microsoft recommends that new applications make use of the Windows message loop for keyboard and mouse input instead of DirectInput as indicated in the Meltdown 2005 slideshow



  • Habe eine Lösung finden können.


Anmelden zum Antworten