Je pars du principe que vous ne connaissez rien en programmation et encore moins en LSL. Je vais donc vous prendre par la main pour vous faire visiter ce langage et vous donner envie de réaliser de grandes choses avec lui ! Mais dans un premier temps nous allons nous consacrer à des choses super simples. Il est de tradition dans l’apprentissage des langages de programmation de commencer avec un programme tout simple qui se contente de dire « Hello World ! ». La version adaptée pour Second Life dit simplement « Hello Avatar ! » dans la fenêtre du Chat de SL. Je vais me plier à cette tradition et vous proposer votre premier script :
default
{
state_entry()
{
llSay(0, "Salut, Avatar!");
}
}
Juste quelques lignes mais déjà une foule de choses
à expliquer. La ligne :
llSay(0,
"Salut, Avatar!");
correspond à une instruction du langage. C’est l’élément principal de notre script. Remarquez que cette instruction se termine par un point-virgule. Voilà une chose qu’il faut bien retenir parce que c’est ce qu’on oublie toujours. Cette instruction contient une fonction, il s’agit de llSay. Une fonction correspond à une action à effectuer. Tous les noms de fonctions dans LSL commencent par ll. Vous pouvez trouver toutes les fonctions de LSL classées par catégories dans le wiki à cette adresse :
http://www.lslwiki.net/lslwiki/wakka.php?wakka=functions
Une fonction est constituée d’un nom et de
paramètres entre parenthèses, séparés
par des virgules. Dans le cas de llSay vous constatez qu’il y
a deux paramètres. Pour avoir le détail de ces
paramètres et des exemples d’utilisation le wiki est
encore indispensable. Regardez la page consacrée à
llSay :
http://www.lslwiki.net/lslwiki/wakka.php?wakka=llSay
La première ligne de cette aide vous donne la syntaxe
précise de la fonction :
llSay(integer channel, string text)
Vous avez deux paramètres nommés channel et text. Le
premier est un entier (integer) et le second du texte (string).
Nous reviendrons sur ces types de données plus tard. Retenez
juste qu’il existe plusieurs types de données comme
des nombres ou du texte. Dans notre script nous avons
attribué la valeur 0 au premier paramètre et «
Hello Avatar ! » au second. Vous avez compris que les
paramètres servent à passer des valeurs aux
fonctions. La fonction llSay, comme son nom l’indique, sert
à dire quelque chose (anglais say). Le deuxième
paramètre nous permet de transmettre le texte. Remarquez
qu’il figure entre guillemets pour signifier qu’il
s’agit de texte. Le premier paramètre sert à
dire où nous voulons que ce texte s’affiche, dans quel
canal du Chat. La valeur 0 indique l’affichage
général, ce qui veut dire que tous les avatars
pourront le lire. Les autres valeurs de canal servent à des
communications privées. Si vous lisez attentivement la
documentation du wiki vous pourrez constater qu’on aurait pu
écrire :
llSay(PUBLIC_CHANNEL, "Salut, Avatar!");
Nous obtiendrions le même résultat. PUBLIC_CHANNEL est
une constante qui vaut 0. Il existe un certain nombre de constantes
dans LSL.
Un élément important à prendre en compte est
que SL a été créé par des
américains et que la langue anglaise ne comporte aucun
accent. Si vous essayez d’en placer un dans le
paramètre de llSay vous obtenez une erreur.
Voyons maintenant un peu le reste du code. « default »
est ce qu’on appelle un état dans LSL (state). Cette
notion d’état n’est pas évidente à
comprendre à priori, surtout dans un code qui ne comporte
qu’un état ! Imaginez une porte, elle peut être
ouvert ou fermée, c’est-à-dire qu’elle
peut adopter deux états. Dans le code de LSL c’est un
peu pareil, il y a des états. Ici c’est
l’état par défaut qui est celui qui correspond
à l’initialisation du code. Ce qui veut dire
qu’au départ le code qui est dans cet état est
exécuté. Remarquez la présence
d’accolades ouvertes et fermées. Elles servent
à limiter un bloc de code, c’est-à-dire un jeu
d’instructions qui appartiennent à un même
ensemble. Les tabulations permettent de bien distinguer les
accolades imbriquées. Tout notre code fait partie de
l’état « default », il est inclus entre la
première accolade ouverte et la dernière accolade
fermée. Dans cet état nous avons state_entry() qui
est encore une autre catégorie, c’est un
événement. A l’inverse d’une fonction ou
le code commande l’exécution de quelque chose,
l’événement attend qu’il se passe quelque
chose.Je reviens à mon histoire de porte. Elle peur avoir
deux états ; ouvert et fermé. On peut imaginer deux
fonctions : ouvrir et fermer. On peut aussi imaginer deux
événements : la porte s’ouvre, la porte se
ferme. Il est important de bien distinguer ces catégories.
Le deuxième tutorial sera d’ailleurs consacré
à une porte ! L’événement state_entry()
est celui qui correspond au lancement initial du code. Il ne
survient donc qu’une seule fois, au démarrage. Il sert
en général à faire des initialisations.
Entraînez vous à utiliser l’éditeur de SL
pour faire tourner ce programme et aussi l’éditeur
LSLEditor qui vaut vraiment la peine qu’on
l’utilise.







