Difference between revisions of "Control/fr"
m (français) |
m (better translation of "edge" and various minor fixes) |
||
Line 2: | Line 2: | ||
|event_id=15|event_delay=0.05|event=control | |event_id=15|event_delay=0.05|event=control | ||
|p1_type=key|p1_name=id|p1_desc | |p1_type=key|p1_name=id|p1_desc | ||
|p2_type=integer|p2_name=niveau|p2_desc= | |p2_type=integer|p2_name=niveau|p2_desc=ensemble de bits CONTROL_*, non nul tant qu'au moins une touche est enfoncée. | ||
|p3_type=integer|p3_name= | |p3_type=integer|p3_name=front|p3_desc=ensemble de bits CONTROL_*, non nul si au moins une touche a été appuyée ou relâchée (front descendant ou montant). | ||
|event_desc= | |event_desc=Évènement déclenché par [[llTakeControls/fr|llTakeControls]] et par les actions de l'utilisateur. | ||
|constants={{LSL Constants/Controls/fr}} | |constants={{LSL Constants/Controls/fr}} | ||
|spec | |spec | ||
Line 30: | Line 30: | ||
CONTROL_LBUTTON | | CONTROL_LBUTTON | | ||
CONTROL_ML_LBUTTON | | CONTROL_ML_LBUTTON | | ||
0, TRUE, TRUE); | 0, TRUE, TRUE); // Le 0 est là pour présenter plus joliment | ||
} | } | ||
} | } | ||
control(key id, integer niveau, integer | control(key id, integer niveau, integer front) | ||
{ | { | ||
integer | integer debut= niveau & front; | ||
integer fin = ~niveau & | integer fin = ~niveau & front; | ||
integer pression = niveau & ~ | integer pression = niveau & ~front; | ||
integer relachement = ~(niveau | | integer relachement = ~(niveau | front); | ||
llOwnerSay(llList2CSV([niveau, | llOwnerSay(llList2CSV([niveau, front, debut, fin, pression, relachement])); | ||
} | } | ||
} | } | ||
Line 45: | Line 45: | ||
|helpers | |helpers | ||
|also_header | |also_header | ||
|also_events={{LSL DefineRow||[[run_time_permissions/fr|run_time_permissions]]| | |also_events={{LSL DefineRow||[[run_time_permissions/fr|run_time_permissions]]|Évènement de gestion des droits}} | ||
|also_functions={{LSL DefineRow||[[llTakeControls/fr|llTakeControls]]|Permet de détecter les mouvements d'un avatar}} | |also_functions={{LSL DefineRow||[[llTakeControls/fr|llTakeControls]]|Permet de détecter les mouvements d'un avatar}} | ||
{{LSL DefineRow||[[llReleaseControls/Fr|llReleaseControls]]|Permet d'arrêter la détection de mouvements}} | {{LSL DefineRow||[[llReleaseControls/Fr|llReleaseControls]]|Permet d'arrêter la détection de mouvements}} | ||
Line 54: | Line 54: | ||
|notes=L'utilisation sur un attachement de [[llGetRot/fr|llGetRot]] en [[mouselook/fr|vue subjective]] renvoie l'angle de vue de l'avatar. | |notes=L'utilisation sur un attachement de [[llGetRot/fr|llGetRot]] en [[mouselook/fr|vue subjective]] renvoie l'angle de vue de l'avatar. | ||
Si le délai (d'occurrence) | Si le délai (d'occurrence) entre deux évènements est doublé (à l'aide de [[llMinEventDelay/fr|llMinEventDelay]]), alors cet évènement sera traité avec un délai divisé par deux. Cet évènement peut donc se déclencher deux fois plus souvent que les autres évènements si le délai minimal de [[llMinEventDelay/fr|llMinEventDelay]] est plus grand que 0.1. | ||
Des tests ont déterminé que la clé renvoyée n'est pas la clé de l'agent contrôlé, mais celle de l'objet du propriétaire. | Des tests ont déterminé que la clé renvoyée n'est pas la clé de l'agent contrôlé, mais celle de l'objet du propriétaire. |
Latest revision as of 00:56, 14 March 2010
LSL Portail Francophone | LSL Portail Anglophone | Fonctions | Évènements | Types | Operateurs | Constantes | Contrôle d'exécution | Bibliothèque | Tutoriels |
Description
! Event: control( key id, integer niveau, integer front ){ ; }Évènement déclenché par llTakeControls et par les actions de l'utilisateur.
• key | id | |||
• integer | niveau | – | ensemble de bits CONTROL_*, non nul tant qu'au moins une touche est enfoncée. | |
• integer | front | – | ensemble de bits CONTROL_*, non nul si au moins une touche a été appuyée ou relâchée (front descendant ou montant). |
Constantes | Valeurs | Descriptions |
---|---|---|
CONTROL_FWD | 0x00000001 | Déplacement vers l'avant (↑ ou W) |
CONTROL_BACK | 0x00000002 | Déplacement vers l'arrière (↓ ou S) |
CONTROL_LEFT | 0x00000004 | Déplacement vers la gauche (⇧ Maj-← ou ⇧ Maj-A [← ou A en vue subjective]) |
CONTROL_RIGHT | 0x00000008 | Déplacement vers la droite (⇧ Maj-→ ou ⇧ Maj-D [→ ou D en vue subjective]) |
CONTROL_ROT_LEFT | 0x00000100 | Rotation vers la gauche (← ou A) |
CONTROL_ROT_RIGHT | 0x00000200 | Rotation vers la droite (→ ou D) |
CONTROL_UP | 0x00000010 | Déplacement vers le haut (PgUp ou E) |
CONTROL_DOWN | 0x00000020 | Déplacement vers le bas (PgDn ou C) |
CONTROL_LBUTTON | 0x10000000 | Bouton gauche de la souris |
CONTROL_ML_LBUTTON | 0x40000000 | Bouton gauche de la souris en vue subjective |
Exemples
<lsl> default {
state_entry() { llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS); } run_time_permissions(integer perm) { if(PERMISSION_TAKE_CONTROLS & perm) { llTakeControls( CONTROL_FWD
Notes
L'utilisation sur un attachement de llGetRot en vue subjective renvoie l'angle de vue de l'avatar.
Si le délai (d'occurrence) entre deux évènements est doublé (à l'aide de llMinEventDelay), alors cet évènement sera traité avec un délai divisé par deux. Cet évènement peut donc se déclencher deux fois plus souvent que les autres évènements si le délai minimal de llMinEventDelay est plus grand que 0.1.
Des tests ont déterminé que la clé renvoyée n'est pas la clé de l'agent contrôlé, mais celle de l'objet du propriétaire. Si plus d'un script est utilisé dans un même objet pour suivre en simultané plusieurs avatars (1 droit/script), l'évènement peut être déclenché dans les différents scripts, mais il n'y a aucun moyen de savoir quel agent a déclenché l'évènement. Cette anomalie est suivie dans la fiche SVC-476.
Voir aussi
Evénements
• | run_time_permissions | – | Évènement de gestion des droits |
Fonctions
• | llTakeControls | – | Permet de détecter les mouvements d'un avatar | |
• | llReleaseControls | – | Permet d'arrêter la détection de mouvements | |
• | llRequestPermissions | – | Permet de demander des droits |