LSL学习笔记(1)

原创 2007年09月19日 23:44:00
 
LSL is the Linden Scripting Language. This is the language all scripts in Second Life are written in.
LSL emphasizes on "States" and "Events".
Scripts can make an object move, listen, talk, operate as a vehicle or weapon, change color, size or shape. A script can make an object listen to your words as well as talk back to you, scripts even let objects talk to each other.
 
First Script “Hello World”
1.      由于LSL只能运行在object里,因此你必须先create an object!(你只能在允许你创建object里的land上(如sandbox)创建object
2.      然后在object”Edit Window”click “More”, and then select content Tab, and then Press “New Script” Button, 就会为该object添加了一个script(缺省为一个helloworld script,见下列代码),save即可
//default state
default
{
     //刚进入default state时调用的方法
     state_entry()
     {
         llSay(0, "Hello, Avatar!");
     }

     //touch event trigger
     touch_start(integer total_number)
     {
         llSay(0, "Touched.");
     }
}
如何reset, stop and start your script
当你click “Save” button时,script会立即执行。If you take it into inventory, it will "suspend" what it was doing but go right back to it when rezzed (resurrected) again. (If you are not familiar with "taking" and "rezzing" an object you may need to revisit your building skills).
当你re-write your script后你就希望reset the script, reset2种方法:
1. Press Reset in the script window.
2. Select the object and go to TOOLS>RESET SCRIPTS IN SELECTION
那么stop and start script也有2种方法:
1. checking and unchecking the "running" button
2. Select menu TOOLS>SET SCRIPTS TO NOT RUNNING IN SELECTION and then TOOLS>SET SCRIPTS TO RUNNING IN SELECTION.
 
一个object可以包含多个scripts
例如有一个object,你会写一个script让它每隔10秒就变换一次颜色,然后再写第二个script让它一直跟着你
 
Introducing States and Events
例根据我自己的理解:event callback都必须写在State里面,你的Script可以包含多个State,但必须包含有一个Default state
 
下面写一个包含有2State,每个State里包含有2event callbackScript
script的功能是:当在default statetouch object,就会把颜色变暗,然后转换到Off state,当在Off statetouch object,就会把颜色变亮,然后转换到Default state
default //default state is mandatory
{
    state_entry() // runs each time the state is entered
    {
        llSay(0, "turning on!");
        llSetColor(<1.0, 1.0, 1.0>, ALL_SIDES); // sets all sides to most bright
    }
 
    touch_start(integer total_number)
    {
        state off; // sets the script to a new "state" and starts running "state off"
    }

 
state off // a second state besides "default"
{
    state_entry() // this is run as soon as the state is entered
    {
        llSay(0, "turning off!");
        llSetColor(<0.0, 0.0, 0.0>, ALL_SIDES); // sets all sides as dark as possible
    }
 
    touch_start(integer total_number)
    {
        state default;
    }
}
 
介绍几个LSL内建函数
注意:LSL内建函数都是以“ll”开头
llSetColor:设置颜色
例:llSetColor(<1.0, 1.0, 1.0>, ALL_SIDES);
就是把object的各个side都变最亮,第一个参数是设置Red, Green, Blue
llSayobject Speak message (30m之内的人会听到)
例:llSay(0, "turning on!");
就是令objectchannel zeroSpeak “turning on!”。什么是channel zero?就是the same channel you see all public chat on.
调用llSay函数让object show message会让距离该object 30米内的人都会听到该message,另外还提供另外几个函数来令object speak message,但听到message的人跟ojbect距离的不同
llWhisper:令object Speak message (15m之内的人会听到)
例:llWhisper(0,"turning on!");
llShoutobject Speak message (60m之内的人会听到, but can cut the amount of friends you have in half.)
llOwnerSay: 只有触发该函数的本人能听到
例:llOwnerSay("turning on!");
llSetText: object show message(但没有声音)
例:llSetText("I am on", <1.0, 1.0, 1.0>,1.0);
第二个参数是设置messageColorRed, Green, Blue值,第三个参数alpha setting1.0表示完全不透明,0.0表示完全透明。
 

控制极限(UCL,LCL) 和规格极限(USL,LSL)

想问下 控制极限(UCL,LCL) 和规格极限(USL,LSL)是这么表示吗?规格上限还有其他表示方法吗?控制极限和规格极限用图表示是什么概念呢?控制极限(UCL,LCL) 和规格极限(USL,LSL...
  • u011981242
  • u011981242
  • 2015年09月22日 10:57
  • 2723

LSL学习笔记(4)

注:所有内容摘抄自 http://www.ibm.com/developerworks/cn/edu/r-dw-r-radsl.html   图元图元,或简称 Prims,定义了一个空间的几何区域,以...
  • totogogo
  • totogogo
  • 2007年10月29日 23:05
  • 906

LSL学习笔记(3)

 NotecardNotecard是Second Life里的的其中一种inventory item (通常是a text file), 每个notecard都有一个key,通过下列步骤你可以获得该n...
  • totogogo
  • totogogo
  • 2007年10月10日 16:10
  • 1013

LSL学习笔记(2)

 常用函数 :string llList2String(list src, integer index)从List里获取其中的一个元素,并转为string. index begin from 0.Ex...
  • totogogo
  • totogogo
  • 2007年10月10日 12:21
  • 975

Arm 中 几个位移运算指令的比较

http://simplemachines.it/doc/arm_inst.pdf在arm结构中,支持几种位移运算LSL       Logical shift left LSR       Logi...
  • RichardYSteven
  • RichardYSteven
  • 2010年11月01日 14:43
  • 1149

OpenCV学习笔记大集锦

转载自: OpenCV学习笔记大集锦 – 视觉机器人 http://www.cvrobot.net/collect-opencv-resource-learn-study-note-chinese...
  • qq_26898461
  • qq_26898461
  • 2016年01月06日 09:49
  • 1422

myBatis学习笔记(1)——快速入门

在项目中使用myBatis 导入jar包 在src下创建配置文件
  • u010837612
  • u010837612
  • 2015年05月12日 11:06
  • 938

LSL Prims

LSL Prims 1. prim 1.1 single part object 1.2 composed virtual physical object 1.3 特性 1.3.1 同一时间只能被一个...
  • wu447639976
  • wu447639976
  • 2011年03月17日 00:46
  • 177

【机器学习-斯坦福】学习笔记1 - 机器学习的动机与应用

开始看Andrew Ng的经典课程机器学习,随堂做的学习笔记 机器学习的动机与应用 工具:需正版:Matlab,免费:Octave   定义(Arthur Samuel 1959): 在不直接针对问题...
  • maverick1990
  • maverick1990
  • 2013年08月29日 17:23
  • 16641

CS229机器学习笔记1

一个合理的学习问题应该这样定义:对于一个计算机程序来说,给他一个任务T和性能测量方法P,如果在经验E的影响下,P对T的测量结果得到了改进,那么就说该程序从E学习。 四个部分: - 监督学习 - ...
  • qq_33431611
  • qq_33431611
  • 2018年01月20日 11:49
  • 24
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LSL学习笔记(1)
举报原因:
原因补充:

(最多只允许输入30个字)