Je suis actuellement en train de faire un jeu avec Pygame et je rencontre un problème lors de la mise en plein écran.
En effet, lorsque je l'active sur mon écran "externe" (avec mise à l'échelle de 100%), aucun problème, le jeu s'affiche en entier sur toute la fenêtre, et donc tout l'écran.
Cependant, si je l'active sur mon écran de pc portable (avec mise à l'échelle de 125%), alors je ne vois que la partie centrale de ma fenêtre, et c'est assez embêtant.
Quand je parle de mise à l'échelle, il s'agit d'une option Windows accessible dans les paramètres.
J'ai beaucoup cherché et j'ai rien trouvé, donc je pense que la seule solution serait d'activer / désactiver cette mise à l'échelle dans les options Windows directement mais cela n'est pas du tout pratique.
Donc si quelqu'un aurait potentiellement une solution je suis preneur.
Merci d'avance.
- Edité par maxence.bonamy 14 février 2021 à 23:13:51
Tout d'abord, ta fenêtre a-t-elle une dimension mini ?
Je pose cette question car, dans la mesure où tu appliques un facteur d'échelle de 125 % sur ton écran "portable", les dimensions de ta fenêtre sont également impactées.
Suivant la résolution de ton écran "portable" et s'il y a une dimension mini à ta fenêtre, celle-ci se retrouve alors peut-être plus grande que l'écran.
Et ce serait donc pour cela que tu ne la vois pas entièrement.
D'après ce que j'y ai compris, non ce n'est pas ce problème. 😅
PB68 a écrit:
Bonjour.
Tout d'abord, ta fenêtre a-t-elle une dimension mini ?
Je pose cette question car, dans la mesure où tu appliques un facteur d'échelle de 125 % sur ton écran "portable", les dimensions de ta fenêtre sont également impactées.
Suivant la résolution de ton écran "portable" et s'il y a une dimension mini à ta fenêtre, celle-ci se retrouve alors peut-être plus grande que l'écran.
Et ce serait donc pour cela que tu ne la vois pas entièrement.
- Edité par PB68 15 février 2021 à 16:21:27
Tout d'abord, mon écran portable à la même résolution que l'autre (Full HD).
Ensuite, pour ce qui est de la dimension mini, le problème pourrait en effet venir de là. Comment faire alors pour régler cette dimension mini ?
- Edité par maxence.bonamy 28 février 2021 à 9:27:27
J'ai pas compris l'histoire de mise à l'échelle ...
Je vais essayer d'être plus clair alors c'est pas évident
J'ai donc 2 écrans. On va appeler écran A l'écran avec mise à l'échelle windows de 100 % et B avec échelle 125 %.
(Cette mise à l'échelle s'effectue dans les paramètre windows → système → affichage → mise à l'échelle et disposition)
Prenons un exemple, je dessine un rectangle en haut à droite de ma fenêtre pygame que je configure en plein écran (c'est à dire qui prend tout l'écran même la barre des tâches windows et la barre au dessus avec notamment le bouton fermer qu'on ne voit donc pas).
J'exécute le programme dans l'écran A, aucun soucis, on voit bel et bien le rectangle en haut à droite. Maintenant, je l'exécute sur l'écran B, et je ne vois pas tout le rectangle (il est mangé par la bordure de l'écran). En gros c'est comme si j'avais un peu zoomé sur la fenêtre de l'écran A.
À ce stade, la seul solution que je connaisse est de modifier ce paramètre directement avec Windows, comme vu précédemment, mais on va pas se le cacher, c'est chiant. Donc je me demandais si on avait une possibilité de régler ce petit soucis avec pygame directement.
Et bien c'est le système qui zoome à 125%. Est-ce-qu'il est possible pour un programme non système de récupérer et modifier ce paramètre le temps de son exécution ? Aucune idée.
Tu utilises l'option FULLSCREEN dans display.set_mode ?
Je reviens avec mon idée de conflit de dimension de fenêtre avec les "zoom système". Sur ce lien, il est dit que c'est un problème connu et une solution serait d'utiliser la méthode "scaled" lors de l'instantiation de "display".
Et bien c'est le système qui zoome à 125%. Est-ce-qu'il est possible pour un programme non système de récupérer et modifier ce paramètre le temps de son exécution ? Aucune idée.
Tu utilises l'option FULLSCREEN dans display.set_mode ?
Oui j'utilise cette option mais dans tous les cas cela ne change rien 😅
PB68 a écrit:
Bonjour.
Je reviens avec mon idée de conflit de dimension de fenêtre avec les "zoom système". Sur ce lien, il est dit que c'est un problème connu et une solution serait d'utiliser la méthode "scaled" lors de l'instantiation de "display".
En effet j'ai aussi trouvé cette option et elle ne fonctionne qu'avec pygame 2+ (j'ai une version antérieure) j'ai donc mis à jour pygame, j'ai utilisé SCALED et le problème est résolu. Cependant (ça ne s'arrête jamais ...) j'ai maintenant des problèmes de performances et je pense que ça vient de l'upgrade...
Tu utilises l'option FULLSCREEN dans display.set_mode ?
Oui j'utilise cette option mais dans tous les cas cela ne change rien 😅
Càd dans tous les cas ? C'est le même problème en mode fenêtré ?
Oui c'est ça
Redimensionnement auto
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Le Tout est souvent plus grand que la somme de ses parties.
PB68
PB68
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.
PB68
Python c'est bon, mangez-en.