Mausbewegung überprüfen



  • Hi,

    ich suche eine Funktion in SDL, die überprüft, ob sich die Maus bewegt oder nicht.

    Wenn ich es wie im unteren Quellcodeausschnitt schreibe, funktioniert es nicht und new_mouseX wird erst dann 0 und der Mauszeiger auf die entsprechenden Koordinaten durch SDL_WarpMouse() gesetzt, wenn ich irgendeine Taste drücke.

    while ( SDL_PollEvent(&event) ) {
    
    	if(event.type != SDL_MOUSEMOTION)
    	{
    
    	new_mouseX=0;
    
    SDL_WarpMouse(512, 384);
    }
    }
    

    Könnt ihr mir helfen?

    Gruß Crabbe
    }



  • Ich hoffe dir ist das mittlerweile selbst aufgefallen, wenn nicht, kann ich mir ein kleines "lol" nicht verkneifen 😉

    if(event.type [i]!=[/i] SDL_MOUSEMOTION) //ungleich?
    	{ }
    


  • Hi, du Schlaumeier, new_mouseX soll auf 0 gesetzt werden, wenn sich die Maus nicht bewegt, demzufolge ist der code richtig! 🙄

    Gruß Crabbe



  • Ich kenn SDL nicht wirklich, aber was du so schreibst hört sich danach, als ob
    PollEvent erst returned wenn eben ein "Event" eintritt (z.B. Tastendruck).

    Entweder kann man SDL so konfigurieren, das er immer returned, auch wenn du nichts drückst oder bewegst und dann EVENT_NONE zurückbekommst oder so, oder du musst einen etxtra Thread machen, der new_MouseX jeden durchlauf =0 setzt, außer wenn SDL_MOUSEMOTION auftritt.

    Kommt mir aber eh seltsam vor. Was ist eigentlich das Ziel? Willst Du jeden Frame den Mauscursor zurücksetzen? Dann mach das im Render-Loop.


Anmelden zum Antworten