“LlDetectedGrab”的版本间的差异

来自人工智能助力教育知识百科
跳转至: 导航搜索
Qmf讨论 | 贡献
第4行: 第4行:
 
{{函数详情
 
{{函数详情
 
|函数名 = Function: vector llDetectedGrab( integer number );
 
|函数名 = Function: vector llDetectedGrab( integer number );
|参数= 参数: integer number–Index of detection information number does not support negative indexes.
+
|参数= 参数: 检测信息号的整数索引不支持负索引。
|返回值= 返回值:Returns a vector that is the grab offset of the user touching the object; only works in the touch event.
+
|返回值= 返回值:返回一个向量,该向量是用户触摸对象的抓取偏移量;只在触摸事件中起作用。
  
  
 
|注意事项=
 
|注意事项=
 
注意事项
 
注意事项
*If number is out of bounds this function returns <0.0, 0.0, 0.0> and the script continues to execute without an error message.
+
*如果数字超出了界限,这个函数返回<0.0,0.0,0.0>,脚本继续执行,没有错误消息。
*Events that enable the llDetected* functions always return at least one detected item.
+
*启用lldetect *函数的事件总是返回至少一个检测到的项。
*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]
+
*检测事件的项检测参数最初不小于1。
  
  

2020年5月18日 (一) 10:47的版本

Template:Needs Translation/


函数名
Function: vector llDetectedGrab( integer number );
参数: 检测信息号的整数索引不支持负索引。
返回值:返回一个向量,该向量是用户触摸对象的抓取偏移量;只在触摸事件中起作用。
注意事项
注意事项
  • 如果数字超出了界限,这个函数返回<0.0,0.0,0.0>,脚本继续执行,没有错误消息。
  • 启用lldetect *函数的事件总是返回至少一个检测到的项。

如果没有检测到任何东西,则不引发检测事件。

  • 检测事件的项检测参数最初不小于1。
示例
示例1
default
{
    state_entry()
    {
        llSetStatus(PRIM_PHYSICS,TRUE);//This allows the object to be "grabbed" and dragged
    }
    touch(integer num_detected)
    {
        llSay(0,(string)llDetectedGrab(0));//Be prepared for a great amount of chatted info.
                                           //The faster you move the mouse while grabbing the object the greater the offset becomes.
                                           //This is not due to the speed but the reaction time of the turn around of the physical prim,
                                           //thus an offset (distance from grab to prim center) is created and measured by this function.
    }
}

示例2

/******
 
Simple llDetectedGrab illustration, rez a prim and add this script.
The prim will become a cone that follows mouse grabs.
 
 Click and hold the mouse button down on the object, then:
 - Drag left and right to move parallel to the camera focal plane.
 - Drag up and down to move to and from the camera.
 - Hold down Ctrl, then drag up and down to move vertically.
 
******/
 
default
{
    state_entry()
    {
        llMinEventDelay(0.25);
        llSetStatus(STATUS_PHYSICS, FALSE); // make the object static for simplicity
        llSetPrimitiveParams([
            PRIM_SIZE, <0.5, 0.5, 0.5>,
            PRIM_TYPE, PRIM_TYPE_CYLINDER, PRIM_HOLE_DEFAULT, <0.0, 1.0, 0.0>,
              0.0, ZERO_VECTOR, ZERO_VECTOR, ZERO_VECTOR
        ]); // a cone that can follow the mouse pointer
    }
 
    touch(integer total_number)
    {
        llLookAt(llGetPos() + llDetectedGrab(0), 1.0, 1.0);
    }
}
相关函数
llPassTouches
相关事件
touch_start

touch touch_end