L'interface du jeu repose sur différents GUI. Chaque GUI est une région rectangulaire de l'écran qui est dessiné par-dessus l'arrière-plan. Chacun peut être défini comme :
L'interface par défaut est constituée de deux GUI - la ligne de statut et
la barre d'icônes.
Allez à l'onglet “GUIs” de l'arborescence principale. Tous les GUI du jeu
y sont listés – double-cliquez pour en éditer un. Pour en créer un nouveau,
faites un clic droit sur le noeud “GUIs” et choisissez “New GUI” (”Nouveau GUI”).
Une fois que vous avez ouvert un GUI, vous verrez le GUI lui-même dans la fenêtre princpale,
et ses réglages peuvent être modifiées dans la grille Properties (Propriétés). Ceci vous
permet de changer la couleur ou l'image d'arrière-plan, et de définir la position ou la taille
du GUI parmi d'autres choses.
La propriété “Visibility” (”Visibilité”) vous permet de définir quand le GUI sera affiché.
Vaut “Normal” par défaut, ce qui signifie que le GUI sera initialement visible, bien qu'il
puisse être caché si vous utilisez une commande GUI.Visible=false dans game_start.
L'option “Popup modal” signifie que le GUI sera initialement caché et doit être activé
par une commande de script. Avec cette option, le jeu se mettra en pause lorsque le GUI sera
affiché, et durant ce temps les fonctions on_mouse_click et on_key_press ne seront pas
exécutées.
L'option “Mouse YPos” (”Position Y de la Souris”) signifie que le GUI n'apparaît que
lorsque la position verticale de la souris se déplace au-dessus de la coordonnée Y définie
dans l'option “Popup-YP”.
“Persistent” est similaire à “Normal”, sauf que ce GUI ne sera pas effacé lors d'une cutscene
même si vous avez choisi “GUIs turn off when disabled” (”Les GUI s'effacent lorsqu'ils ne sont
pas actifs”) dans les réglages généraux. Pratique si vous voulez que la plupart de vos GUI
s'effacent, sauf une ligne de statut ou autre.
Le réglage “Z-Order” (”Couche Z”) vous permet de définir dans quel ordre les GUI sont
dessinés - c'est-à-dire lorsque deux GUI se chevauchent, lequel sera dessiné par-dessus.
Le réglage Z-Order est un nombre arbitraire entre 0 et 1000. AGS dessine les GUI dans l'ordre,
du plus petit nombre à l'arrière-plan jusqu'au plus grand nombre au premier plan.
La réglage “Clickable” vous permet de définir si le GUI et ses boutons réagissent aux clics
de souris. Ceci est activé par défaut, mais si vous le désactivez et que le joueur clique
sur le GUI, le jeu traitera le clic comme s'il avait cliqué sous le GUI, sur ce qu'il y a
vraiment dans la pièce. Utile pour des GUI transparents quie ne sont utilisés que pour afficher
de l'information.
Vous remarquerez que les GUI ont des noms. Ils peuvent être utilisés dans le script de la même
façon que les noms de personnage. Par exemple, si un GUI a le nom “gBarreIcones”, vous pouvez
utiliser les scripts comme ça :
gBarreIcones.Visible = true;
Pour proposer une interface interactives, vous utiliserez les boutons.
Pour ajouter une bouton, cliquez sur le bouton “Add button” (”Ajouter bouton”) dans la barre
d'outils, puis dessinez un rectangle sur le GUI avec la souris. Vous le verrez s'afficher comme
un bouton textuel, rempli du texte “New button” (”Nouveau bouton”). Remarquez que la fenêtre
Properties (Propriétés) affiche désormais les propriétés de votre nouveau bouton plutôt
que celles du GUI.
En utilisant la fenêtre des propriétés, vous pouvez définir une image pour le bouton plutôt que
du texte, et vous pouvez aussi définir d'autres attributs assez clairs.
Vous définissez ce qui se passe lorsque le joueur clique sur le bouton en utilisant l'attribut
“Click Action” (”Action de Clic”). Il peut valoir “Run Script” (”Exécuter Script”) (par défaut),
mais aussi “Set mode” (”Définir mode”), qui change le mode de curseur pour le mode spécifié
dans la propriété “New mode number” (”Numéro du nouveau mode”).
Pour supprimer un bouton, faites un clic droit dessus et choisissez Delete (Supprimer).
Vous pouvez facilement afficher du texte statique sur votre interface. Par exemple,
les interface dans le style Sierra affichent le score dans la barre de statut.
Pour afficher du texte dans un GUI, vous aurez besoin d'une étiquette (label).
Cliquez sur le bouton “Add label” (”Ajouter étiquette”) dans la barre d'outils,
puis tracez un rectangle comme vous l'avez fait pour le bouton. Vous pouvez changer le
texte affiché dans l'étiquette en éditant la propriété “Text”. Remarquez que le texte
s'adapte automatiquement pour entrer dans le rectangle que vous avez tracé.
En plus du texte normal que vous pouvez entrer dans une étiquette, vous pouvez ajouter
certains mot-clés spéciaux qui permettent au texte de changer de valeur durant le jeu.
Les mot-clés suivants seront remplacés par les valeurs pertinentes dans le jeu :
@GAMENAME@ Le nom du jeu, spécifié dans l'onglet Game Settings (Réglages du Jeu) @OVERHOTSPOT@ Le nom de la zone d'interaction (hotspot) sur laquelle se trouve le curseur @SCORE@ Le score actuel du joueur @SCORETEXT@ Le texte "Score: X of XX" ("Score : X sur XX") rempli avec les nombres correspondants @TOTALSCORE@ Le score maximum possible, défini dans l'onglet Game Settings (Réglages du Jeu)
Exemple : Vous avez @SCORE@ points sur @TOTALSCORE@.
La fenêtre de propriétés vous permet aussi d'aligner le texte à gauche, à droite
ou au centre, ainsi que de modifier la couleur et la police utilisées.
Si vous voulez ajouter une touche personnelle aux fenêtres de texte blanches qui affichent
tous les messages durant le jeu, vous pouvez créer une bordure à l'aide de l'éditeur de GUI.
Faites un clic droit sur le noeud “GUIs”, et choisissez “New Text Window GUI” (”Nouveau GUI
fenêtre de texte”).
L'élément sera redimensionné à environ 1/4 de l'écran, et vous verrez 8 images - une dans chaque
coin et une de chaque côté. Ce sont les images de bordure. Vous changez les images des coins
de façon normale.
Dans le jeu, les images des coins seront placées aux coins respectifs de la fenêtre de texte,
et les images de côtés seront répétées tout le long du bord de la fenêtre.
Pour informer le jeu que vous utilisez votre style personnalisé de fenêtre textuelle, allez
dans l'onglet General Settings, et cochez “Text windows use GUI” (”Les fenêtres de texte
utilisent un GUI”). Ensuite, entrez le numéro du GUI que vous voulez utiliser.
Vous pouvez aussi définir une image d'arrière-plan pour la fenêtre de textes. Dans
l'éditeur de GUI, définissez simplement une image d'arrière-plan pour l'élément GUI.
L'image que vous spécifiez ne sera ni étirée ni affichée en mosaïque dans le jeu ;
toutefois elle sera rognée pour entrer dans la fenêtre. Vous devriez utilise une image
d'au moins 250×80 pixels pour vous assurer qu'elle rempli entièrement la fenêtre.
Pour définir la couleur du texte dans la fenêtre, définissez simplement la couleur de premier
plan (Foreground Colour) du GUI et ce sera celle utilisée pour afficher le texte des messages.
Une autre option que vous pouvez avoir remarquée dans l'éditeur GUI est le bouton
“Add Inventory” (”Ajouter Inventaire”). Ceci vous permet de tracer un rectangle
qui affichera l'inventaire en cours du joueur, de la façon que le font les jeux
Lucasarts. Pour pouvoir faire défiler la fenêtre d'inventaire, vous aurez besoin
de boutons Haut et Bas, et d'y attribuer des scripts qui appellent les fonctions
adéquates comme InvWindow.ScrollUp et InvWindow.ScrollDown.
Pour voir la liste complète des commandes disponibles pour les fenêtres d'inventaire,
consultez la section Fonctions et propriétés des inventaires.
Vous pouvez désormais ajouter des barres de défilement (sliders) à vos GUI.
Ceci vous permet d'offrir une interface élégante au joueur pour qu'il puisse
régler des aspects comme le volume ou la vitesse du jeu à l'aide d'un curseur.
Pour ajouter une barre de défilement, cliquez sur le bouton “Add slider” et tracez
un rectangle comme vous le feriez pour un bouton. Vous pouvez aussi redimensionner
la barre en glissant le coin inférieur droit de la même façon que pour un bouton.
Les barres de défilement peuvent être verticales ou horizontales. La direction dans
laquelle elles sont tracées est automatiquement calculée selon la dimension du cadre -
si elle est plus large que haute, vous aurez une barre horizontale, sinon vous en
aurez une verticale.
Dans les propriétés des barres de défilement, vous pouvez définir un minimum, un maximum
et une valeur courante pour le curseur. En jeu, l'utilisateur pourra le faire glisser
de MIN à MAX, le curseur étant initialement positionné à VALUE.
Pour les barres de défilements horizontales, MIN est à gauche et MAX à droite, pour
les verticales, MAX est en haut et MIN est en bas.
Lorsque le joueur déplace le curseur dans la barre, l'événement OnChange est appelé.
Cela signifie que s'ils le déplacent continuellement de haut en bas, l'événement
sera appelé sans discontinuer.
Votre script peut récupérer la valeur du curseur à l'aide de la propriété Slider.Value.
Une zone de saisie (Text Box) est un outil simple qui permet au joueur de passer
des informations à votre jeu. L'ajout d'une zone de saisie se fait comme l'ajout de tout
autre élément de GUI.
Si une zone de saisie est affichée dans un GUI, lorsque le joueur pressera une touche
(une lettre, la touche Entrée, la touche de correction) elle sera dirigée vers
la zone de saisie plutôt que passer à la fonction on_key_press. Lorsque le joueur appuie
sur Entrée (Return) dans la zone de saisie, l'événement OnActivate est appelé.
Vous pouvez alors utiliser la propriété TextBox.Text pour récupérer ce qui a été tapé.
Les listes vous permettent d'ajouter une liste de lignes à votre GUI. Cela peut
être utile pour afficher une boîte de sauvegarde/chargement, permettant au joueur
de choisir diverses options.
Vous utilisez les fonctions ListBox pour manipuler les listes - par exemple,
ListBox.AddItem pour ajouter une ligne, ou ListBox.SelectedIndex pour récupérer
la sélection actuelle.
L'événement OnSelectionChanged est déclenché lorsque le joueur clique sur une ligne
dans la liste.
Vous pouvez l'ignorez si vous n'en avez pas l'utilité.