Template:Needs Translation/
函数名
|
Function: rotation llDetectedRot( integer number );
|
参数:integer number–Index of detection information number does not support negative indexes.
|
返回值:Returns the rotation of detected object number.
|
注意事项
|
注意事项
- If number is out of bounds this function returns <0.0, 0.0, 0.0, 1.0> and the script continues to execute without an error message.
- Events that enable the llDetected* functions always return at least one detected item.
- Detection events are not raised if there is nothing detected.[1]
- The detection event's items detected parameter is initially never less than 1.[2]
|
示例
|
//--// get compass facing of Avatar that touches this object //--//
//-- list of compass directions starting at East, rotated clockwise
list gLstCompassPoints = [ "East", "NorthEast", "North", "NorthWest", "West", "SouthWest", "South", "SouthEast" ];
//-- convert rotation to z-axis compass direction
string CompassDirection( rotation rRotBase )
{
integer iCountCompassPoints = llGetListLength(gLstCompassPoints);
//-- convert rotation to a direction
vector vDirection = <0.0, 1.0, 0.0> / rRotBase;
//-- take the direction and determine the z rotation
float fAngle = llAtan2(vDirection.x, vDirection.y);
//-- take the angle and find the compass point
integer iCompassPoint = llRound(fAngle * iCountCompassPoints / TWO_PI);
//-- convert to string
return llList2String( gLstCompassPoints, iCompassPoint );
}
default{
state_entry()
{
llSay( 0, "Touch me to get your compass facing" );
}
touch_start( integer vIntTouchCount )
{
integer vIntCounter = 0;
do
{
llSay( 0,
llDetectedName( vIntCounter )
+ " is facing "
//-- next line gets avatar rotation and converts to compass direction
+ CompassDirection( llDetectedRot( vIntCounter ) ) );
} while ( ++vIntCounter < vIntTouchCount );
}
}
|