Recherche

Recherche personnalisée

dimanche 29 mars 2009

Tutorial 1

Blog de lsl :Les scripts de Second life, Tutorial 1



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.

Aucun commentaire:

Enregistrer un commentaire