2012-03-29 3 views
1

Ich benutze momentan Überschwang für ein Spiel und versuche die Maus im Fenster zu halten. Dies ist kein Ego-Shooter, also ist es nicht gut, es in der Mitte zu sperren. Ich weiß bereits über glutWarpPointer(int, int); und ich habe Dinge versucht, die funktionieren (irgendwie).Verwenden von Überschwang, um die Maus daran zu hindern, das Fenster zu verlassen

Ich habe versucht, die Maus zurück zum nächsten Rand des Fensters zu verformen, wenn es geht, das funktioniert, aber für einen Bruchteil einer Sekunde sehen Sie die Maus außerhalb des Fensters und Teleport wieder rein. Ich will nicht Ich möchte, dass es so aussieht, als ob die Maus gerade den Rand des Fensters berührt und aufhört, weiter in diese Richtung zu gehen, während sie die Bewegung in einer anderen verfügbaren Richtung behält. Wie Sie erwarten würden, dass es funktioniert.

+0

@KillianDS, es ist kein Duplikat, da die Lösung für den anderen sich in der Mitte des Bildschirms befindet. Dies ist jedoch kein FPS, und Sie können das nicht tun. – Shahbaz

+0

@KillianDS Nein, das ist für ein fps-Spiel, also wollen sie die Maus in der Mitte sperren, ich möchte die Maus im Fenster halten und verhindern, dass sie ausgeht. – SpaceFace

+3

Dies ist dem Benutzer zu feindselig. Führen Sie es im Vollbildmodus aus, wenn dies wichtig ist. –

Antwort

2

Dies ist nicht genau eine Antwort auf Ihre Frage, aber es ist eine Antwort auf Ihr Problem!

Fast jedes Spiel hat seine eigenen Cursor. Sie würden die Maus verstecken und den Mauszeiger manuell dorthin ziehen, wo die Maus positioniert werden soll.

Wenn Sie Ihr eigenes Cursor-Bild erhalten und wie gesagt, können Sie einfach den Cursor am Rand des Bildschirms zeichnen, obwohl die Mausposition außerhalb der Grenzen liest. Dann können Sie die Maus wieder zurückwerfen.

+0

Ich habe nicht versucht, meinen eigenen Cursor noch (oder überhaupt) hinzuzufügen, also frage ich mich, wird die echte Maus für eine kurze Sekunde auftauchen, wenn sie das Fenster verlässt, obwohl der benutzerdefinierte Cursor, wenn ja, wie kann ich das lösen? Abgesehen davon, das ist wahrscheinlich, was ich tun werde, danke, ich werde akzeptieren, sobald der Timer abgelaufen ist :). – SpaceFace

+0

Ich weiß es eigentlich nicht. Wie die Kommentare in Ihrer Frage ist das Fangen der Maus in einer Fensteranwendung ein wenig unheimlich für die Benutzer, aber ich glaube, wenn Sie die Maus mit GLUT verstecken, würde sie verborgen bleiben, wenn sie aus dem Fenster verschwindet (was noch gruseliger ist)) (Vergessen Sie nicht, es einzublenden) Wie auch immer, beste Antwort ist es, ein versteck/show zu Ihrem Programm hinzuzufügen, um zu sehen, was passiert. – Shahbaz

+0

Randnotiz, überprüfen Sie [SDL] (www.libsdl.org/), wenn Sie Zeit hatten. Es ist meiner Meinung nach viel besser als GLUT. – Shahbaz

Verwandte Themen