LlDetectedRot/fr
LSL Portail Francophone | LSL Portail Anglophone | Fonctions | Évènements | Types | Operateurs | Constantes | Contrôle d'exécution | Bibliothèque | Tutoriels |
Description
Fonction: rotation llDetectedRot( integer numéro );38 | N° de fonction |
0.0 | Delais |
10.0 | Energie |
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 |