De base, Inform ne permet pas de modifier la façon dont la fiction interactive se présente : il s’agira toujours d’un texte qui est affiché, puis de l’invite de commande, puis la commande du joueur, puis de nouveau du texte affiché en bloc, et ainsi de suite.
Cependant, l’extension Basic Screen Effects, incluse avec Inform, permet de modifier un peu cette boucle. Voyons de suite ce qu’elle permet.
Et n’oubliez pas d’écrire dans votre source la ligne suivante afin d’inclure l’extension :
Include Basic Screen Effects by Emily Short.
Effacer l’écran
La première chose que nous pourrions avoir envie de faire est d’effacer l’écran. Cela fera en sorte de vider la fenêtre de tout son texte, comme si on venait d’ouvrir le jeu. Il faut utiliser l’expression suivante :
effacer l'écran;
Évitez cependant d’abuser de cette fonction : effacer l’écran empêche le joueur de remonter dans la fenêtre pour revoir ses action précédentes. Si le joueur a besoin de retrouver une information obtenue auparavant, il ne pourra pas le faire puisque le texte aura disparu.
Effacer l’écran est surtout utile comme transition entre des chapitres ou lorsque un changement notable a lieu dans le jeu. Un petit exemple :
Instead of sleeping when la location est la chambre: effacer l'écran; maintenant le player est dans le rêve.
Il est également possible de n’effacer que la fenêtre principale ou la barre de statut :
effacer l'écran principal seulement; effacer la barre de statut seulement;
Il est à noter que la barre de statut est mise à jour à chaque tour ; son effacement ne sera donc pas visible en général puisque qu’elle sera reremplie dès que l’invite de commande sera affichée (instantanément, donc). Cependant, cela n’est pas le cas si l’on attend que le joueur appuie sur une touche, comme nous allons le voir dans la section suivante.
Attendre une touche
Il arrive que nous ayons besoin de faire avancer l’histoire et d’informer le joueur de certaines choses en affichant beaucoup de texte d’un coup à l’écran, un peu comme l’équivalent d’une cinématique dans un jeu plus « conventionnel ». Si un textdump, comme le disent les anglophones, s’avère nécessaire, une bonne idée est d’effectuer des pauses régulières.
When play begins: dire "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ac elit lectus. Morbi non rutrum magna. Sed laoreet velit ut metus blandit, id tristique erat convallis. Cras sed semper dui. Nulla eu ante vitae purus volutpat commodo."; attendre une touche; dire "Duis vestibulum scelerisque ligula eu condimentum. Curabitur ut interdum metus, id venenatis justo. Pellentesque luctus faucibus ipsum vitae volutpat. Nunc et nibh a massa sodales tristique. In eu sagittis ex, non mollis neque. Vivamus efficitur auctor mi et imperdiet."; attendre une touche; dire "Interdum et malesuada fames ac ante ipsum primis in faucibus. Aliquam et dui leo. Morbi diam orci, euismod et scelerisque eget, commodo eget sapien. Vestibulum ut fringilla felis. Quisque ac justo vitae ante feugiat vestibulum."; attendre une touche.
Le joueur devra appuyer sur une touche — n’importe laquelle — pour afficher les paragraphes au fur et à mesure, et ainsi découvrir cette merveilleuse introduction épique sans être submergé.
Encore une fois, il faut éviter d’en abuser. Si votre fiction interactive contient des passages aussi longs que ci-dessus, alors c’est que quelque chose cloche peut-être, et qu’il faudrait plutôt trouver un autre moyen plus naturel de faire passer l’information. Dans les dialogues « cinématiques », attendre une touche peut être utile entre chaque réplique pour rendre le texte plus dynamique. De plus, si afficher un énorme texte est inévitable, effectuer des pauses permet de ne pas avoir le petit [more]
affiché par l’interpréteur parce que le texte a dépassé de la fenêtre.
Cette pratique de mettre le jeu en pause est répandue dans le monde francophone, mais ne l’est apparemment pas autant chez les anglophones. Certains ont même appelé le concours de 2015 « press any key comp » (en français : « compétition appuyez sur une touche ») !
Pour finir cette section, il existe un raccourci pour afficher un message demandant d’appuyer sur une touche, d’attendre une touche et d’effacer l’écran juste après. À vous de voir si cela vous sera utile.
mettre l'histoire en pause;
Personnaliser la barre de statut
Il est possible par défaut de modifier la partie gauche et droite de la barre de statut, comme ceci :
When play begins: maintenant la left hand status line est "[the player's surroundings] / [turn count] / [score]"; maintenant la right hand status line est "Heure : [time of day]".
Cela n’est pas suffisant si l’on veut du texte au centre, ou une barre de statut de plusieurs lignes. L’extension sur laquelle porte ce tutoriel le permet. Il faut tout d’abord définir un tableau, de la forme suivante :
Table of Votre titre pour le tableau left central right "T : [turn count]" "[location]" "H : [time of day]" "S : [score]" "" ""
Il y a une tabulation entre chaque colonne et un seul saut de ligne à la fin de chaque ligne ; chaque élément doit contenir un texte. Le titre peut être à peu près n’importe quoi. Il est recommandé de copier ce code dans Inform, car il mettra en forme le tableau pour qu’il soit plus lisible. (Si vous voulez avoir plus d’informations sur les tableaux, vous pouvez regarder le chapitre 16 de la documentation, mais nous n’en aurons pas besoin ici.)
Il suffit ensuite d’écrire directement dans sa source :
Rule for contructing the status line: remplir la barre de statut avec Table of Votre titre pour le tableau; la règle réussit.
Si nous souhaitons simplement centrer du texte, il est possible de ne pas utiliser de tableau du tout :
Rule for contructing the status line: centrer "[location]" sur la ligne 1; la règle réussit.
Conclusion
L’extension Basic Screen Effects permet de mieux contrôler le flot du texte. Elle permet également d’autres choses, comme utiliser des couleurs ou centrer du texte. Cependant, la première fonctionnalité ne fonctionne pas avec l’extension française (une histoire de format Z-machine/Glulx) et la seconde ne fonctionne qu’avec des caractères à largeur fixe.
Une autre extension vous permettra de modifier l’apparence du texte : Glulx Text Effects ; gardez cependant en tête que cette extension peut ne pas fonctionner sur certains interpréteurs (l’interpréteur en ligne Quixe par exemple, où il faudra utiliser du CSS).
Et pour terminer, une dernière expression de Basic Screen Effects, qui permet de stopper abruptement le jeu, sans message de fin et sans invite finale. Cela peut mieux convenir qu’une fin standard en fonction du ton de votre jeu.
Le début est un endroit. La fin est en dessous du début. Article est une scène. Article begins when play begins. Article ends when le player est dans la fin. When Article ends: arrêter l'histoire abruptement.
2 Pings