Felix教你趣玩LSL脚本

网络生活

在第19期,Felix给我们介绍了LSL的概念以及它的应用,让我们对LSL有一个初步的了解,但要掌握它就需要深入的去实践,今天就让LSL脚本高手——Felix,将带给我们两个有趣的LSL实例,让我们体验一下LSL的魅力吧!

做一个粒子动画,很简单

下面这个例子是用粒子系统函数 llParticleSystem 发出一串黄色的光芒粒子喷射效果. 程序延迟十秒然后重置。

// Code by Felix xu of www.slbazar.com

integer second;

default

{

state_entry()

{

second == 0;

llParticleSystem( [] ); //粒子系统重置;

}

}

state new

{

touch_start(integer total_number)

{

//输出粒子系统

llParticleSystem(

[

PSYS_PART_FLAGS, PSYS_PART_WIND_MASK | PSYS_PART_EMISSIVE_MASK,

PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE,

PSYS_PART_START_COLOR, <1,1,0>

] );

llSetTimerEvent( 1 );

}

timer () //重置之前延迟十秒

{

second ++;

if(second > 10)

{

llResetscript(); //脚本重置

}

}

}

// End of code;

最后的效果见图1、图2。

20-f8-2-11.jpg
图1
20-f08-21.jpg
图2

你也能编定时器

llSetTimerEvent 函数用来调用Timer 事件,下面的例子使用Timer事件,随机改变物体的背景颜色,调用频率为每秒一次。十秒后程序脚本重置为初始状态。

integer count;

default

{

state_entry()

{

llSetTimerEvent( 0 ); //停用 timer事件

llSetColor( <1,1,1> , ALL_SIDES );

}

touch_start(integer total_number)

{

count == 0; // zero count

llSetTimerEvent( 1 );

}

timer () // timer事件启动后每次运行内部的代码一次

{

count ++; //count递增

llSetColor(,ALL_SIDES);

if(count > 10)

{

llResetscript();

}

}

}

// End of code

运行后效果见图3、图4。一共变化十次,每秒钟一次,此处仅列出其中两种颜色。

20-f08-22.jpg
图3
20-f08-23.jpg
图4