Template:Needs Translation/
函数名
|
Function: rotation llDetectedRot( integer number );
|
参数:检测信息号的整数索引不支持负索引。
|
返回值:返回检测到的对象号的旋转。
|
注意事项
|
注意事项
- 如果数字超出界限,这个函数返回<0.0,0.0,0.0,1.0>,脚本继续执行,没有错误消息。
- 启用lldetect *函数的事件总是返回至少一个检测到的项。
- 如果没有检测到任何东西,则不引发检测事件。
- 检测事件的项检测参数最初不小于1。
|
示例
|
//--// 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 );
}
}
|