SDL: SDL_MOUSEBUTTONDOWN funktioniert nicht richtig.
-
Ich blick nicht mehr durch,
bis jetzt dachte ich (und das sagt mir auch mein Verstand und die Beispiele von diversen Tutorials...)
Das bei einem Mausklick 2 Events ausgelöst, und zwar einen beim drücken der Maustaste und der zweite beim loslassen.SDL_Event event; while (SDL_PollEvent(&event) >= 0) { switch (event.type) { case SDL_QUIT: return; break; case SDL_KEYDOWN: case SDL_KEYUP: if (event.key.keysym.sym == SDLK_ESCAPE) { return; } key_action(event.key.keysym.sym,event.key.keysym.mod,event.key.type); break; case SDL_MOUSEMOTION: set_mouse_x(event.motion.x); set_mouse_y(event.motion.y); break; case SDL_MOUSEBUTTONDOWN: case SDL_MOUSEBUTTONUP: cout << "Mousebutton!!\n"; mouse_action(event.button.x, event.button.y, event.button.button, event.button.type); break; }
Wenn ich nun klicke und die Taste gedrückt halte, werden die ganze zeit SDL_MOUSEBUTTONDOWNs ausgelöst.
Das Problem ist, auch wenn ich nur kurz klicke, werden mehrere Events ausgelöst.
Das ganze hab ich bis jetzt nur unter Linux (Debian, 2.6.5, SDL Version 1.2.7) getestet.
Muss das so sein?
Hat jemand eine Idee, wie ich das Problem elegant lösen könnte?
-
Was _IST DENN DEIN PROBLEM_?!?!
Scheinbar ist das nicht gepuffert, sondern aktuelle Stati werden übertragen.
Einfach _ERST DANN_ wieder auf "button down" reagieren, wenn vorher min. 1x "button up" kam?!?!
-
Hmmm, ja ok danke...
Ich stand vorgestern irgendwie auf dem schlauch....
-
tasti schrieb:
Ich stand vorgestern irgendwie auf dem schlauch....
Passiert mir dauernd in letzter Zeit...