LlDetectedRot/fr

From Second Life Wiki
< LlDetectedRot
Revision as of 05:14, 24 January 2013 by Omei Qunhua (talk | contribs) (Remove reference to blanked page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Description

Fonction: rotation llDetectedRot( integer numéro );

Renvoie un rotation correspondant à la rotation de l'objet ou de l'avatar détecté identifié par son numéro.

• integer numéro Index des informations de détection

numéro n'accepte pas les index négatifs.
Renvoie <0.0, 0.0, 0.0, 1.0> si le numéro n'est pas un avatar ou un objet détecté valide.

Spécifications

Les fonctions llDetected* peuvent être appellées depuis n'importe quel évènement, mais elles ne renverront de valeurs différentes de leur valeur standard que lorsqu'elles sont appellées depuis un évènement de Détection.

Avertissements

  • Les évènement activant les fonctions llDetected* renvoyent toujours au moins un élément détecté.
    • Les évènements de Détection ne sont pas déclenchés s'il n'y a rien à détecter (sauf pour no_sensor mais il n'active pas les fonctions llDetected*).
    • Le compteur de l'évènement de Détection n'est jamais, initialement, en dessous de 1.

Exemples

<lsl> // Renvoie la direction de l'avatar touchant l'objet (comme une boussole)

// liste des points cardinaux démarrant à l'Ouest et allant dans le sens inverse des aiguilles d'une montre

list pointsCardinaux = [ "à l'Ouest", "au Sud-Ouest", "au Sud", "au Sud-Est", "à l'Est", "au Nord-Est", "au Nord", "au Nord-Ouest" ];

// convertit la rotation selon selon l'axe des z

string directionBoussole( rotation rotationDepart ) {

 // convertit la rotation en degrés
 vector vecteurRotation = llRot2Euler( rotationDepart ) * RAD_TO_DEG;
 
 // ramène dans l'intervalle [0, 360]
 integer direction = ((integer) (vecteurRotation.z + 202.5)) % 360;
 // convertit en texte
 return llList2String( pointsCardinaux, direction / 45 );

}

default {

 state_entry()
 {
   llSay( 0, "Touchez-moi pour obtenir votre direction" );
 }
 touch_start( integer nombreTouche )
 {
   integer numeroTouche = 0;
   do
   {
     llSay( 0,
            llDetectedName( numeroTouche )
            + " fait face "
             // la ligne suivante récupère la rotation de l'avatar et la convertit en point cardinal
            + directionBoussole( llDetectedRot( numeroTouche) ) );
   } while ( ++numeroTouche < nombreTouche ); 
 }

} </lsl>

Voir également

Articles

•  Detected
Vous cherchez encore des informations ? Peut-être cette page du LSLwiki pourra vous renseigner.