Godot: Input.set_mouse_mode (Input.MOUSE_MODE_HIDDEN) masque le curseur même sur le chrome de la fenêtre

Créé le 5 mai 2016  ·  3Commentaires  ·  Source: godotengine/godot

Système d'exploitation ou appareil:
Windows 10 Professionnel x64

Description du problème (ce qui s'est passé et ce qui était attendu):
L'utilisation de Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN) masque le curseur système non seulement dans la zone cliente où le jeu est affiché, mais également en haut de la fenêtre chrome / border / frame / zone non client. Cela rend difficile d'appuyer sur les boutons minimiser / maximiser / fermer. Peut-être que cela peut être optimisé.

bug windows core

Commentaire le plus utile

Quelques progrès ont été faits ici dans mon fork: https://github.com/mattiascibien/godot/tree/hide-cursor-fix

Tous les 3 commentaires

Je ne peux pas reproduire cela sur Linux X11, donc je suppose que c'est un bogue dans le code de la plate-forme Windows.

Je suppose que le problème réside dans l'appel à Win32API ShowCursor(p_mode==MOUSE_MODE_VISIBLE); qui cache en fait le curseur globalement et pas seulement pour la zone client.

Il semble que pour masquer le curseur, un appel à SetCursor(NULL) doit être fait. Cette fonction renvoie également le dernier curseur qui a été utilisé lors de son appel, donc je suppose que nous pouvons le conserver dans une variable pour le restaurer plus tard avec SetCursor(old_cursor) .

Je ne sais pas comment cela se comportera en plein écran.

https://msdn.microsoft.com/en-us/library/windows/desktop/ms648393 (v = vs.85) .aspx

EDIT: selon cela, il semble que setcursor doit être effectué à l'intérieur de la boucle de message de la fenêtre.

EDIT2: ce que je pense que nous devrions faire est en fait d'utiliser la boucle OS_Windows :: WndProc pour la cacher et la montrer avec ce cas. Je réfléchis à des solutions. Dès que j'en trouverai un, je vous tiendrai au courant.

Quelques progrès ont été faits ici dans mon fork: https://github.com/mattiascibien/godot/tree/hide-cursor-fix

Cette page vous a été utile?
0 / 5 - 0 notes