Events (événements) simples commandés par tchatte

Cliquez ici pour voir simpleAnimationActivatedByClicking (animation simple par clic)

Cliquez ici pour voir oneChatCommand (une commande par tchatte) dans un monde multi-utilisateurs

Cliquez ici pour voir twoChatCommands (deux commandes par tchatte) dans un monde multi-utilisateurs

Pour essayer ces exemples, il vous faut télécharger et dézipper le fichier simpleChatCommands.zip et envoyer tous les fichiers sur votre site vers votre hébergeur, puis installez dans votre browser (navigateur) l'adresse actuelle du fichier contact.htm

Comencez par examiner le code du fichier simpleAnimationActivatedByClicking.wrl avec attention.


*** ***

Voyez comment en 6 étapes on peut aboutir à munir le fichier:
simpleAnimationActivatedByClicking.wrl
d'un événement commandé par tchatte, de façon à aboutir finalement à notre exemple:
oneChatCommand.wrl


*** ***

1/ Ajouter le PROTO de Blaxxun BlaxxunZone (zone Blaxxun) contenant le champ groupChat (groupe de tchatte)

    PROTO BlaxxunZone [
        exposedField    MFString groupChat ""
    ]
    {
        Group {}
    }

2/ Instancier ce PROTO BlaxxunZone et le DEFine (définir) comme SharedZone (zone partagée)

    DEF SharedZone BlaxxunZone {
    }

3/ Ajouter un script muni d'une fonction capable de recevoir le tchatte public

    DEF script Script {
        eventIn MFString receiveChat
        eventOut SFTime chatTime
        url "vrmlscript:
        function receiveChat (str, time) { 
            if (str[0]=='rotate blue bar'){
                 chatTime=time;
            }
        }
        "
    }


4/ Il nous faut une ROUTE qui expédie tout ce qui a été dit par n'importe qui sur le tchatte vers la fonction receiveChat (réception du tchatte)

    ROUTE SharedZone.groupChat TO script.receiveChat 

5/ On enlève la ligne de code qui ne sert plus à rien

    DEF touchSensor TouchSensor {}

6/ Puis on remplace la ROUTE qui lui correspondait

    ROUTE touchSensor.touchTime TO timeSensor.startTime

     par celle-ci

    ROUTE script.chatTime TO timeSensor.startTime


Les commandes par tchatte aboutissent au même résultat que les événements partagés. Comme tous les visiteurs du monde multi-utilisateur reçoivent les textes de la fenêtre de tchatte en même temps, l'ordinateur de chacun d'entre eux traite les commandes d'activation des événements en même temps aussi.

L'implémentation d'événements partagés par tchatte semble plus simple que celle qui fait appel à la méthode des événements partagés proprement dite et qui demande à l'utilisateur de cliquer sur un objet. Il n'y donc a pas lieu d'ajouter pour cela des objets spéciaux uniquement destinés à activer un événement partagé. Un seul Noeud BlaxxunZone suffit à activer un nombre quelconque d'événements. Pour ajouter d'autres événements partagés à un monde, tout ce qu'il faut ajouter, c'est

    else if (str[0]=='?'){/*do something*\}

à notre fonction receiveChat (réception du tchatte) dans twoChatComands.wrl (deux commandes par tchatte).
Note en français : "do something" veut dire "faire quelque chose". Vous l'aurez compris, c'est là que vous installez le code, ou la référence au code, de ce qui doit se produire.


Variations sur l'Exemple précédent

Ces fichiers doivent naturellement être installés sur votre serveur en monde multi-utilisateurs, sinon ils ne fonctionnereont pas.

changeBackgroundTexture.wrl (changer la texture d'arrière plan) (du fond de décor) commence par vérifier si la ligne de tchatte ressemble à un URL. Si c'est le cas, il l'envoie rejoindre les URL de texture d'arrière plan.

changeBackgroundColor.wrl (changer la couleur d'arrière plan) change la couleur du fond en écrivant les commandes red, green ou blue (rouge, vert ou bleu). Il est facile d'ajouter bien d'autres couleurs ou commandes au code.


Liens relatifs aux commandes par tchatte



Copyright© 2000-2008 Graham Perrett thyme@seamless3d.com
traduction Matthieu