Bug "Mettre le Curseur en X;Y" / taille de fenêtre ?

Bonjour les gourous de GDevelop 4…
L’action “Mettre le Curseur en X;Y” marche parfaitement TANT qu’on ne change pas la taille de la fenêtre (et donc marche parfaitement dans l’IDE… puisqu’on ne peut pas changer la taille de la fenêtre de jeu dans l’IDE :slight_smile: )

Par contre, lorsque l’on compile le jeu (j’utilise Windows 10), on peut tester l’action “Changer la taille de la fenêtre de jeu” mais, du coup, on se rend compte que plus on augmente la taille de la fenêtre, moins l’action “Mettre le curseur en X;Y” est précise (le pointeur change bien de position mais pas du tout à la position attendue)

Est-ce que ce bug est connu et a été corrigé en GDevelop 5?
Cordialement,
Damien.

Hello,

Alors déjà je te conseille de passer à Gdevelop 5, à moins que vraiment tu ne puisses pas faire autrement (car tu aurais besoin de fonctionnalités de GD4 précises de la plateforme native et manquante dans GD5).

Ensuite, GD4 ou 5… Je ne pense pas que tu sois face à un bug, j’ai retourné cette fonctionnalité dans tous les sens avec des changements de tailles de fenêtres et de résolutions… je pense plus à un problème de calque ? Enfin il faudrait qu’on voit tes événéments, calques, et que tu illustres ton problème pour comprendre.

Sous gdevelop 4, quand tu fais une preview, tu peux “sortir” la fenetre de preveiw de l’IDE avec le bouton “jouer dans une fenetre”, ce qui est très utile si tu veux tester des tailles de fenetres différentes sans avoir à compiler.

Enfin, un argument pour passer à Gdevelop 5 : dans GD5, tu peux redimensionner “à chaud” la fenetre de jeu comme tu le veux (et comme tu le ferais avec n’importe quelle fenêtre de windows) : tout se met à l’échelle automatiquement. Sans rentrer dans les détails, il faut souligner que sur ce point GD5 est bcp plus simple d’utilisation que GD4.

Bonjour,
Merci beaucoup pour ta réponse très rapide.
J’utilise GD4 natif sur Windows car j’ai un fichier XML pour décrire chaque niveau du jeu (le jeu vient avec un certain nombre de niveaux et l’utilisateur peut créer ses propres niveaux). Je ne “crois” pas que GD5 supporte l’écriture et la lecture de fichiers XML… A part ce traitement de fichiers XML, je n’utilise rien d’autre de “spécial” qui m’empêcherait de migrer sur GD5.

Je n’utilise pas les calques (ou, du moins, je n’en utilise qu’un, le calque par défaut :slight_smile: )

Je connais bien le bouton de l’IDE “Jouer dans une fenêtre” mais l’action “Changer la taille de la fenêtre de jeu en X;Y” n’a aucun effet sur CETTE fenêtre (celle de l’IDE). Par contre, quand tu compiles/link le jeu et que tu l’exécutes sous Windows, la fenêtre peut effectivement être redimensionnée par cette action (j’ai 2 boutons “Augmenter” et “Réduire” pour que l’utilisateur adapte au mieux la taille de la fenêtre de jeu à la taille de son écran). “Augmenter” accroit la taille de le fenêtre de 10% et “Réduire” la diminue de 10%. Donc en quelques clics, c’est fait… et la taille optimale trouvée par l’utilisateur est sauvée dans un autre fichier XML qui est lu au démarrage du jeu. Donc si l’utilisateur ne change pas de taille d’écran entre 2 démarrages du jeu, il n’a pas plus besoin d’utiliser à nouveau les boutons “Augmenter” et “Réduire”, la taille de la fenêtre est initialisée immédiatement au démarrage avec les valeurs X et Y lues dans le fichier XML.

Contexte de l’utilisation de “Mettre le curseur à la position X;Y” :

[]Dans l’éditeur de niveaux de mon jeu, quand l’utilisateur fait un clic-droit sur la souris, cela ouvre un menu contextuel avec plusieurs boutons… et j’utilise “Mettre le curseur à la position X;Y” pour prépositionner le curseur sur le ‘bouton par défaut’ de ce menu (il suffit juste de cliquer avec le bouton de gauche de la souris pour effectuer cette ‘action par défaut’)[/]
[]L’utilisateur peut également changer chaque case du niveau en déplaçant une “case courante” avec les flèches de son clavier. J’utilise également “Mettre le curseur à la position X;Y” pour que le curseur de la souris se positionne automatiquement sur (suive…) cette “case courante”.[/]

Tout marche parfaitement avec la fenêtre de l’IDE (car il n’y a pas de mise à l’échelle de cette fenêtre) ou quand l’utilisateur n’utilise pas les boutons “Augmenter” et “Réduire” (qui provoque une mise à l’échelle de +/- 10% de la fenêtre de jeu)

MAIS il y a un bug quelque part ( :confused:) quand on utilise “Mettre le curseur à la position X;Y” APRES avoir changé la taille de fenêtre par défaut du jeu. Le curseur ne se positionne pas au bon endroit…

Cordialement,
Damien.
PS1. Ce que tu décris ci-dessous ("…dans GD5, tu peux redimensionner “à chaud” la fenetre de jeu comme tu le veux (et comme tu le ferais avec n’importe quelle fenêtre de Windows) : tout se met à l’échelle automatiquement…") est en effet TELLEMENT mieux !! Je n’aurai plus à m’enquiquiner avec mes boutons “Augmenter” et “Réduire” que je supprimerai avec une grande joie!
PS2. Est-ce que le support des actions “Charger/Fermer un fichier structuré” et “Ecrire/Lire une valeur” est prévu dans GD5? Le jour ou c’est fait, je migre IMMEDIATEMENT à GD5 :smiley:

Il faudrait que tu testes si GD5 se comporte de la même façon, il n’y aura plus de correctifs sur GD4… Mais si c’est un bug sous GD5 ça sera pris en charge un jour :slight_smile:

Pour info, ça peut t’intéresser (mais je ne peux guère en parler j’ai pas encore tester cette nouvelle extension vu que je développe pour mobile ne ce moment) : http://wiki.compilgames.net/doku.php/gdevelop5/all-features/filesystem

Merci beaucoup pour ta réponse
Intéressant ce “File System Extension”…
Si j’ai bien compris, au lieu de stocker mes différents niveaux en fichiers XML (que ne supporte pas GD5), je pourrais me débrouiller pour stocker toutes les informations contenues dans mes fichiers XML dans une variable structure plus ou moins complexe (avec enfants, sous-enfants, etc.) puis stocker cette variable dans un fichier du file system de mon PC en format JSON.
Puis évidemment, j’ai la possibilité de lire/relire ces fichiers au format JSON (comme je lis aujourd’hui un fichier XML quand l’utilisateur change de niveau)…
C’est cela?
Cordialement,
Damien.

Oui ! J’ai pas trop joué avec pour l’instant, mais oui c’est ça.