GameMaker Studio 2 ne rend pas la plupart des choses directement à l'écran, mais les restitue à la surface de l' application. Ceci est essentiellement une surface, comme tout ce que vous pouvez faire vous-même en utilisant les fonctions de surface, et en tant que tel peut être manipulé avec les fonctions de surface, dessiné, envoyé aux shaders et tout ce que vous feriez normalement avec ce.
NOTE: La seule chose que vous ne pouvez pas faire avec la surface de l'application est de le libérer. Il existe toujours, bien que la valeur d'index pour y accéder puisse changer.
Lorsque vous exécutez votre partie, cette surface est créée la première fois que l'événement de dessin est appelé dans chaque nouvelle pièce que vous entrez, ce qui signifie que rien n'est dessiné jusqu'à ce point. Cependant, vous pouvez toujours obtenir la position de la surface de l'application et la redimensionner dans CreateEvent ou tout autre événement sans aucune erreur et les valeurs utilisées seront pertinentes pour la surface lors de sa création. La séquence réelle des événements est la suivante:
- Événement de pré-tirage
- ---> surface de l'application créée et rendu cible
- Pour chaque vue visible ou, si aucune vue n'est active, une fois
Dessiner l'événement de début
Dessiner un événement
Dessiner un événement final- ---> la cible de surface d'application est réinitialisée ici
- Événement après tirage
- ---> la surface d'application est maintenant dessinée dans le tampon arrière par défaut (bien que vous puissiez l'éteindre)
- Dessiner un événement de démarrage GUI
- Dessiner un événement GUI
- Dessiner l'événement final de l'interface graphique
L'utilisation de cette surface signifie que vous pouvez facilement créer des transitions incroyables en utilisant des shaders, ou prendre l'écran et l'enrouler autour d'un formulaire 3D, ou simplement mettre à l'échelle un jeu basse résolution jusqu'à n'importe quel écran de résolution... Les possibilités sont infinies!
Pour accéder à cette surface, vous devez utiliser la variable globale intégrée application_surface qui est expliqué sur la page suivante:
Vous disposez également de quelques fonctions spécialisées conçues uniquement pour la surface d'application: