Oneshot Gems
Jouer

Pour les développeurs de jeux

Faire du redimensionnement une transition de mise en page maîtrisée

Un jeu dans le navigateur peut être redimensionné lorsque la fenêtre change, qu’un appareil pivote, que les commandes du navigateur apparaissent ou que la mise en page change. Si le canevas change de taille sans mise à jour de son tampon interne et du mappage des entrées, l’image peut s’étirer et les clics tomber ailleurs. Traitez la taille comme une donnée d’entrée pour la mise en page et le rendu, puis mettez à jour ensemble les systèmes qui en dépendent. Un redimensionnement ne devrait ni réinitialiser la progression ni déclencher des calculs coûteux à répétition pour chaque petite fluctuation de mesure.

Sur cette page

Observez l’élément réellement utilisé par le jeu

Utilisez ResizeObserver lorsque le conteneur du canevas peut changer indépendamment de la fenêtre, par exemple dans un panneau divisé ou une page dont les commandes évoluent. Lisez la taille de son contenu, ne mettez à jour les dimensions du tampon interne du canevas que si elles ont changé, et recalculez l’échelle entre les coordonnées CSS et celles du monde du jeu.

Évitez de réécrire sans condition des dimensions qui affectent la mise en page dans l’élément observé lui-même. MDN indique qu’un redimensionnement depuis une fonction de rappel de l’observateur peut créer une boucle ; planifiez soigneusement le travail et ignorez l’écriture si la taille attendue n’a pas changé. Séparez la zone d’affichage du jeu du système de coordonnées fixe du monde si la conception doit ajouter des bandes sans déformer l’image.

Testez ensemble la mise en page et les commandes

Aux formats étroit, large et après rotation, cliquez ou appuyez sur une cible près de chaque bord du canevas et vérifiez que le jeu détecte la même position dans le monde que celle de l’élément visible. Redimensionnez pendant un niveau et vérifiez que la stratégie de caméra ou d’ajout de bandes s’applique sans déplacement inattendu des positions.

Observez le conteneur au lieu de supposer que window.innerWidth détecte tous les changements de mise en page. Si le clavier mobile ou l’interface du navigateur modifie l’espace disponible, décidez si la zone de jeu doit rétrécir, garder sa taille ou défiler. Testez ce choix avec les commandes visibles, car elles peuvent occuper l’espace dont le jeu a besoin.

Questions sur ⁨gestion du redimensionnement des jeux dans le navigateur⁩

Chaque redimensionnement doit-il modifier la taille du monde du jeu ?

Non. De nombreux jeux conservent des coordonnées stables et ne changent que la caméra ou ajoutent des bandes. Redimensionner le monde lui-même peut modifier la difficulté, les collisions et la composition des niveaux.

Quand préférer ResizeObserver à un gestionnaire de redimensionnement de la fenêtre ?

Utilisez ResizeObserver lorsque la taille de l’élément concerné peut changer en fonction de son conteneur ou de la mise en page environnante, même si les dimensions globales de la fenêtre restent identiques.

Pour aller plus loin

Vous avez repéré une information dépassée ? Signaler une correction

Continuez à jouer.

Des jeux gratuits sur navigateur, prêts quand vous l’êtes. Trouvez celui qui vous plaît et faites-en votre prochain favori.

Suivez votre curiosité