LlDetectedRot/de

From Second Life Wiki

Hauptseite > LlDetectedRot > LlDetectedRot/de
Jump to: navigation, search

LSL Portal Funktionen | Ereignisse | Typen | Konstanten | Datenflusskontrolle | Script Sammlung | Tutorien

Contents

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.

Beispiele

//--// Ein Kompass, der in die Richtung zeigt, in welche der, das Objekt berührende, Avatar schaut //--//
 
//-- @@ = Enthält Codeoptimierungen, siehe
//-- wiki.secondlife.com/wiki/User:Void_Singer/Optimizations
 
 //-- 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 );
  }
}

Siehe auch

Artikel

•  Detected
Dieser Artikel war nicht hilfreich für Dich? Vielleicht bringt der zugehörige Artikel im SLinfo Wiki Erleuchtung.
In other languages