如何用LSL中的粒子制作静止图像?

时间:2009-06-19 20:28:48

标签: linden-scripting-language

LSL(Linden Scripting Language)允许使用llParticleSystem函数进行各种粒子效果。为了使一个不动的基于粒子的图像悬停在prim上,有哪些正确的参数赋予该函数?

(今天在Script Academy讨论组中提出了这个问题。我在这里重新发布问题和答案,以帮助更多LSL用户进入Stack Overflow。)

1 个答案:

答案 0 :(得分:4)

以下脚本将使用prim中内容中的第一个纹理,从粒子中创建一个静止的悬停图像。

ParticleImage(string tex, vector scale)
{
   list params;
   //set texture and size
   params += [PSYS_SRC_TEXTURE, tex];
   params += [PSYS_PART_START_SCALE, scale];
   //make particles follow source
   params += [PSYS_PART_FLAGS, PSYS_PART_FOLLOW_SRC_MASK];
   //use drop pattern, which has no velocity
   params += [PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_DROP];
   llParticleSystem(params);
}

default
{
   state_entry()
   {
       //make the prim invisible
       llSetAlpha(0.0, ALL_SIDES);
       if (llGetInventoryNumber(INVENTORY_TEXTURE))
       {
           string tex = llGetInventoryName(INVENTORY_TEXTURE, 0);
           ParticleImage(tex, <1.0, 1.0, 0.0>);
       }
   }
}