Certains d'entre vous ont peut-être remarqué les options
Move Down et
Move Up qui apparaissent lors d'un clic droit sur les lignes de l'onglet
Scripts de l'éditeur.
EDIT : Ces options ont disparu dans AGS 3.3. Désormais vous modifiez l'ordre directement en glissant-déposant à la souris. Si vous avez de suite compris l'intérêt que représente l'ordre des scripts, tant mieux pour vous, mais cela n'est pas évident pour un novice en programmation.
Vous avez donc peut-être également remarqué que le
GlobalScript ne peut pas monter, pas plus qu'on ne peut descendre d'autre script sous lui.
Et cela est tout à fait normal puisque ce dernier a, pour des raisons pratiques, besoin d'accéder à toutes les données globales. Et ces données globales, il les récupère dans les
Script headers (extensions
.ash) qui se trouvent
au-dessus de lui.
Cette méthode pour récupérer les données vaut pour
tout fichier script de votre projet.
Ainsi, sur cette image :
- Spoiler:
les données que vous avez définies dans
Empreintes.ash, le script header le plus haut, sont accessibles par
tous les scripts de votre projet.
En revanche, les données que vous avez définies dans
Bise.ash, qui se trouve
après les fichiers
Empreintes, ne sont accessibles que par
Bise,
GlobalScript et les fichiers scripts propres aux pièces de votre jeu.
Enfin, et contrairement à ce que pourrait laisser penser le message du
GlobalScript Header ("
Main header script - this will be included into every script in the game (local and global)." -- mes italiques), les données déclarées dans
GlobalScript.ash ne seront accessibles que par
GlobalScript et les fichiers scripts propres aux pièces de votre jeu.
Ainsi, si vous désirez utiliser une variable ou une fonction déclarée dans un script header qui se trouve
après le script dans lequel vous en avez besoin, il faudra trouver une façon de contourner le problème.
La solution la plus simple consiste à
remonter le script dans lequel la variable ou la fonction est définie, mais attention : sa position est peut-être à son tour significative vis-à-vis des autres scripts.
Une autre solution peut être de créer un nouveau script, et donc un nouveau script header, dans lequel vous définirez cette variable ou cette fonction, plutôt que de la laisser dans un script qui se trouve trop bas. Mais à nouveau, il se peut que pour définir cette variable ou cette fonction, vous ayez besoin de données qui se trouvent
plus bas. Dans ce cas, c'est un long jeu de réorganisation en perspective.
Mais ne vous inquiétez pas, les cas de dépendance sont plutôt rares et le bout de la chaîne est vite atteint.
Attention aussi à bien suivre la
logique des déclarations de vos données.