LlRotTarget/fr
LSL Portail Francophone | LSL Portail Anglophone | Fonctions | Évènements | Types | Operateurs | Constantes | Contrôle d'exécution | Bibliothèque | Tutoriels |
Description
Fonction: integer llRotTarget( rotation rot, float error );68 | N° de fonction |
0.0 | Delais |
10.0 | Energie |
Cette fonction définie une cible de rotation et lance une détection de rotation.
Renvoie un integer permettant d'identifier la cible (cet identifiant sert à arrêter la détection avec llRotTargetRemove)
• rotation | rot | – | rotation cible | |
• float | error | – | précision en radians |
La cible est une rotation définie par la rotation rot et les évènements déclenchés sont :
- at_rot_target si la rotation de l'objet est à moins de error radian de la rotation cible
- not_at_rot_target sinon.
Cette fonction ne tourne pas les objets, utilisez llSetRot, llRotLookAt ou llLookAt.
Une fonction similaire existe pour les positions: llTarget
Exemples
<lsl>vector standrot = <0.0, 0.0, 0.0>; vector fliprot = <45.0, 0.0, 0.0>;
// Un exemple simple utilisant 2 états par Hypatia Callisto // pour détecter la rotation d'une prim. Voici un exemple que j'ai écrit // puisqu'il n'y avait presque rien pour illlustrer les fonctions // at_rot_target, not_at_rot_target, llRotTarget, llRotTargetRemove
integer rottarget;
default {
state_entry(){ rottarget = llRotTarget(llEuler2Rot(fliprot*DEG_TO_RAD), 0.1); llSetPrimitiveParams ([PRIM_ROTATION, llEuler2Rot(standrot*DEG_TO_RAD)]); // Fait pivoter à la position de départ }
not_at_rot_target() { llRotTargetRemove( rottarget ); llOwnerSay("Rotation cible non atteinte"); } touch_start (integer total_number){ state rotatestate; // change l'état pour une nouvelle position }
}
state rotatestate
{
state_entry(){ rottarget = llRotTarget(llEuler2Rot(fliprot*DEG_TO_RAD), 0.1); llSetPrimitiveParams ([PRIM_ROTATION, llEuler2Rot(fliprot*DEG_TO_RAD)]); // Fait pivoter à une nouvelle position } at_rot_target(integer tnum, rotation targetrot, rotation ourrot){ llRotTargetRemove( rottarget ); llOwnerSay("Rotation cible atteinte"); //atteint la cible }
touch_start(integer touched){ state default; }
}
</lsl>
Voir également
Évènement
• at_rot_target | not_at_rot_target | – | Evènements liés à une rotation cible | |
• at_target | not_at_target | – | Evènement liès à une position cible. |
Fonctions
• | llRotTargetRemove | – | Supprime la rotation cible | |
• | llTarget | – | Définit une position cible. | |
• | llTargetRemove | – | Supprime la position cible. |