LlSetTextureAnim

来自人工智能助力教育知识百科
跳转至: 导航搜索

Template:Needs Translation/


函数名
Function: llSetTextureAnim( integer mode, integer face, integer sizex, integer sizey, float start, float length, float rate );
参数:

•整数模式–模式标志掩码 •整数面–面数或所有面 •整数sizex–水平框架(旋转和缩放时忽略) •整数尺寸-垂直框架(旋转和缩放时忽略) •浮动开始–开始位置/帧编号(或旋转的弧度) •浮动长度–要显示的帧数(或旋转的弧度) •浮动速率-每秒帧数(不得为零) 如果面是所有面,则函数在所有面都有效。 start支持负索引。 帧从左到右、从上到下从0开始编号。 如果rate为负,则其效果与使用REVERSE标志相同。

返回值:通过设置纹理比例和偏移,在指定的面上设置纹理动画。
注意事项
示例
这将沿水平U轴平滑地滑动纹理,并在纹理结束时循环纹理。注意-纹理每边的旋转会影响外观运动。因此,如果使用编辑框将纹理旋转90度,则纹理可能不会按预期方向流动。
llSetTextureAnim(ANIM_ON | SMOOTH | LOOP , ALL_SIDES, 1, 1, 1.0, 1.0, 1.0);

这将沿水平U轴以相反的方向平滑地滑动纹理

llSetTextureAnim(ANIM_ON | SMOOTH | LOOP , ALL_SIDES, 1, 1, 1.0, 1.0, -1.0);

这将纹理分为64个“单元”,8个横截面,8个向下,然后从左到右,从上到下翻转这些单元。这对于单元动画非常有用。

llSetTextureAnim( ANIM_ON | LOOP, ALL_SIDES, 8, 8, 0.0, 64.0, 6.4 );

这将以每秒2圈的速度逆时针旋转纹理。将最后一个值更改为-2*TWO-PI以顺时针旋转。

llSetTextureAnim(ANIM_ON | SMOOTH | ROTATE | LOOP, ALL_SIDES,1,1,0, TWO_PI, 2*TWO_PI);

这会使纹理变大变小。

llSetTextureAnim(ANIM_ON | SMOOTH | SCALE | PING_PONG | LOOP, ALL_SIDES, 1, 1, 1.0, 3.0, 2.0);

这将关闭所有纹理动画

llSetTextureAnim(FALSE, ALL_SIDES, 0, 0, 0.0, 0.0, 1.0);

这将切换循环动画以使其在特定帧处停止。

integer textureIsBeingAnimated;
 
default
{
    touch_start(integer num_detected)
    {
        if (textureIsBeingAnimated)
            llSetTextureAnim(ANIM_ON | LOOP, ALL_SIDES, 1, 5, 0.0, 0.0, 1.0);
        else
            llSetTextureAnim(ANIM_ON | SMOOTH, ALL_SIDES, 1, 5, 5.0, 1.0, 1.0);
 
        // toggle back and forth between TRUE (1) and FALSE (0)
        textureIsBeingAnimated = !textureIsBeingAnimated;
    }
}
相关函数
llSetLinkTextureAnim
相关事件

详见:http://wiki.secondlife.com/wiki/LlSetTextureAnim