Wie kann ich die Position des Mauszeigers in OpenGL / Glut ändern?
Frage
Ich bin ein einfaches Spiel zu schreiben, und ich werde die Maus habe, um die Kamera zu steuern (mit GlutPassiveMotionFunc).
Ich werde die Maus Unterschied zwischen Rückrufe Nick- und Gier basiert weg, aber ich denke, es wäre eine gute Idee sein, die Maus wieder in die Mitte des Bildschirms, um „Kraft“ jedes Mal, wenn sie versucht, es zu bewegen. Auf diese Weise wird der Cursor nicht am Rande des Bildschirms, und sie kann nicht weiter in dieser Richtung bewegen.
Welche Glut / OpenGL-Befehl kann ich die Position der Maus mit Gewalt zu ändern?
Lösung
Verwendung glutWarpPointer(x, y)
, wo x
und y
(beide int
s) in Pixel (auf das Fenster des Ursprungs relative) sind. Zum Beispiel:
glutWarpPointer(windowWidth / 2, windowHeight / 2);
Andere Tipps
Sorry für die späte Antwort. Was ich meinte war, dass, nachdem ich glutWrapPointer Funktion zu verwenden, wenn ich die x- und y-Werte auszudrucken, i die Änderung nicht auf den Cursor fangen konnte und es druckt immer die Werte innerhalb der glutWrapPointer Funktion, die ich zur Verfügung gestellt. Was ich tat, zu beheben es diese Funktion in der Animate Funktion des OpenGL-Modus zu bewegen war und es funktionierte gut.