LlDetectedRot/de

From Second Life Wiki
Jump to navigation Jump to search

Beschreibung

Funktion: rotation llDetectedRot( integer Nummer );

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.
Alle Issues ~ Nach JIRA-Issues suchen, die sich hierauf beziehen

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

Weiterführende Anmerkungen

Nach JIRA-Issues suchen, die sich hierauf beziehen

Signature

function rotation llDetectedRot( integer Nummer );
Dieser Artikel war nicht hilfreich für Dich? Vielleicht bringt der zugehörige Artikel im SLinfo Wiki Erleuchtung.