LlDetectedRot/de
LSL Portal | Funktionen | Ereignisse | Typen | Konstanten | Datenflusskontrolle | Script Sammlung | Tutorien |
Beschreibung
Funktion: rotation llDetectedRot( integer Nummer );38 | Funktions ID |
0.0 | Verzögerung |
10.0 | Energie |
Gibt eine Rotation, die der Rotation des Objekts Nummer entspricht.
• integer | Nummer |
number unterstützt keine negative(n) Indizes. Gibt <0.0, 0.0, 0.0, 1.0> zurück, wenn Nummer kein gültig detektiertes Objekt ist.
Spezifikationen
llDetected* Funktionen können von überall aufgerufen werden, liefern jedoch nur dann Werte verschieden der Vorgabewerte, wenn sie in Detection Events aufgerufen werden oder wenn die Funktionen die sie aufrufen von Detection Events gestartet wurden.
Warnungen
- Events, welche die llDetected* Funktionen aktivieren geben immer zumindest ein detektiertes Element.
- Detection Events werden nicht gestartet wenn nichts detektiert wurde (mit der kleinen Ausnahme von no_sensor, wobei es keine llDetected* Funktionen aktiviert).
- Der Detektionsparameter des Events ist nie geringer als 1.
Beispiele
<lsl>//--// Ein Kompass, der in die Richtung zeigt, in welche der, das Objekt berührende, Avatar schaut //--//
//-- Liste mit Himmelsrichtungen. Mit Osten beginnend und gegen den Uhrzeigersinn rotierend
list gLstCompassPoints = [ "Osten", "NordOsten", "Norden", "NordWesten", "Westen", "SüdWesten", "Süden", "SüdOsten" ];
//-- konvertiert die Rotation
string CompassDirection( rotation rRotBase ) {
integer iCountCompassPoints = llGetListLength(gLstCompassPoints); //-- Konvertiert die Rotation in eine Richtung vector vDirection = <0.0, 1.0, 0.0> / rRotBase; //-- Nimmt die Richtung und bestimmt die z-Rotation float fAngle = llAtan2(vDirection.x, vDirection.y); //-- Nimmt den Winkel und findet den Kompasspunk integer iCompassPoint = llRound(fAngle * iCountCompassPoints / TWO_PI); //-- Konvertiert das Ergebnis zu einer Zeichenkette return llList2String( gLstCompassPoints, iCompassPoint );
}
default{
state_entry() { llSay( 0, "Berühre mich um die Richtung zu bestimmen in die Dein Kompass zeigt" ); }
touch_start( integer vIntTouchCount ) { integer vIntCounter = 0; do { llSay( 0, llDetectedName( vIntCounter ) + " zeigt nach " //-- die nächste Zeile bezieht die Avatarrotation und konvertiert sie zur Kompassrotation + CompassDirection( llDetectedRot( vIntCounter ) ) ); } while ( ++vIntCounter < vIntTouchCount ); }}</lsl>
Siehe auch
Artikel
• | Detected |