载入中。。。 'S bLog
 
载入中。。。
 
载入中。。。
载入中。。。
载入中。。。
载入中。。。
载入中。。。
 
填写您的邮件地址,订阅我们的精彩内容:


 
lsl 101 完整的第二人生脚本入门教程(前言)
[ 2008/3/30 5:44:00 | By: 梦翔儿 ]
 

最后更新日期:2008-3-29 14:03

欢迎来到 梦飞翔的地方-虚拟天空 栏目,如果你不能确定从本教程你能得到什么,不要害怕-这恰恰是为你准备的基础教程。

该教程来源于http://www.lslwiki.net/lslwiki/wakka.php?wakka=LSL101 由Aaron2008 Alter 翻译与进行内容改编,并首发于http://web.exiang.org  因为外语水平,肯定会存在不少错误,请大家批评指正,转载也请注明原作者与来源,谢谢。

LSL 是一个非常简明的语言,它的结构化的,并且不需要你有前期的编程经验就可以很容易地获得一定的认知与阅读。不管你学习的目标是简单的声音脚本,还是编写一个国际像棋程序,本指南都会让你有所收获。

如果你没有任何编程经验,不要害怕,本指南正是面向于从零开始的朋友。如果你已经是一位专家级程序员,尤其是C++,你可以点击这里,快速进入导航目录。

===============
第一章 欢迎,人物(Hello,Avatar)
===============
一个逐行编写的简单脚本

在创世纪的时间,只有Aaron2008 Alter存在。
Aaron长久地凝视着空旷的大地,
没有生命,没有人类
他感到悲伤与孤独。

突然,Aaron有了一个主意。
要让这个巨大的世界充满人类,
Aaron赐于他们力量去改变这个世界。
这个能力仅有一个词。

那个词便是“LSL”
它便是这个世界的神。

----------------

LSL恰好就是在Second life中上帝般存在,尽管你可能不需成为上帝去征服它。

创建一个脚本

在开始写代码之前,你需要知道怎么样去创建一个脚本。我们的目标,你可以用下面三种方法的任意一种去创建一个脚本。

1.右击地面,选择从弹出的菜单中选择 creat,左击地面,这时侯会创建一个默认的立方体,并且打开编程窗口。
点击编程窗口的右下角的"More>>"按钮(如果出现的话)
点击"Content"选项卡,点击"New Script..."按钮

2.右击你Inventory中的任意一个文件夹,并且选择"New Script."
双击这个新创建出来的脚本文件。
脚本编辑窗口就会出现。

3.用第三方工具去创建一个脚本,并且通过以上的方法拷贝粘贴到SL中来

(从今往后,“创建脚本”就意味着执行以上的任意一个操作。“物品”就意味着一个或多个被连接的物元(prim))

#1.这是什么?一些代码诞生了!

像是以下这样:

default
{
    state_entry()
    {
        llSay(0, "Hello, Avatar!");
    }

    touch_start(integer total_number)
    {
        llSay(0, "Touched.");
    }
}
 
一个经典的程序介绍一般都是从“Hello,world”开始的!他通常也是我们自已建立程序的起始点,当你创建一个新的脚本时,你会和聪明的Aaron一样去准备运行这个“Hello,Avatar”脚本。
 
不要惊慌,他看起来是那么地简单!
 
默认的状态:

在这个新脚本中,你首先看到的是单词Default 这个被称为状态 ——作为一个状态的开始。每一个LSL的脚本必须包括一个默认的状态,被命名为“default”,它里面的代码是为了运行程序。
一个脚本可以包括复杂的状态,我们将在以后的教程中和大家说明。
 
在默认状态里的代码将被首先运行。 "default" 告诉编译器(这个程序会翻译你的代码变为SL中可以执行的程序) "okay,兄弟们,我们将从这里开始." 在default下面的代码中,你能够看到一个左花括号({). 它将告诉编译器它后面的是在default中所包含的信息. 沿着程序一直往下看,在程序的结尾,你可以找到标志着default结束的右花括号(}) . 它告诉编译器"default代码在这里结束了." 在花括号之间的所有的代码被称为代码段。所有的被包括在这对花括号之间的default状态的文字形成了代码段。
 
代码段是可以被嵌套的,在这个例子中, default的代码段,包括了state_entry代码段和touch_start代码段. 如你所见, 每一个代码段都包括一对花括号. 每一个代码段都是由左花括开始,右花括号结束, 否则的话,当你执行保存的时侯,代码调试窗口会提示 "Syntax error" 错误。
看到了吧,这一切看起来不是那么难!
 
事件:
一个事件是指一个被命名的代码块,它被Second Life中的事情所触发,代码块里的代码会被执行。 当我们添加代码在这个事件的范围中, 我们创建了一个事件句柄,这些代码将会根据事件而做出相应的响应。
 
state_entry事件:
起初的这一小块代码实际上做了一些事情,被包含在state_entry事件中,让我们来认真研究一下:
 
// <snip>
    state_entry()
    {
        llSay(0, "Hello, Avatar!");
    }
// <snip>
当脚本进入到默认状态时,就会触发state_entry事件,所以说,在它里的代码是首先被执行的,下面是将来发生的事情:1) 编译(保存)脚本。2)重置脚本,有一个"Reset"按钮在脚本编辑窗口,而且,LSL语言也提供了llResetScript函数来重置脚本。
(从今往后“重置脚本”就意味着如上所述。)
*在你的inventory(库存)中的物品,或者活动在世界中的物品不能重置脚本。你可以查看事件on rez来了解到这一点。
事件的名字跟随在一对括号之后,现在,我们暂时放弃这些让人感到迷惑的东西,往下看!一对花括号标志着state_entry代码段的起始与结束。一个状态存在于这样的代码段中。

声明

这一行的起始处有一个llSay,它就是一个声明。声明是一段文字可以做一些事情。每一个声明都必须由分号(;)结束。我们可以这样理解,声名后加分号就像是一句话要用分号结尾一样(译者注:英文部分语法是这样要求的,就像是我们汉语要用句号结尾一样),你可以把编译器做为你的3年级语法教师来对待。通常来讲,每一个声明都包括一行文本。

保存脚本

在脚本编辑器中,点击保存。将进行编译与重置脚本,如果脚本在一个放在世界中的物品当中,你就可以看到一个Chat信息:
Object: Hello, Avatar!
不,这个物品不仅仅同时说“hi”.这是因为重置脚本,触发了default state事件,这段代码包括了llSay声明。

(更多精采,待续:http://web.exiang.org

 
 
 
Re:lsl 101 完整的第二人生脚本入门教程(前言)
[ 2008/4/2 21:57:08 | By: A-c(游客) ]
 
A-c(游客)好东西
以下为梦翔儿的回复:
谢谢
 
个人主页 | 引用 | 返回 | 删除 | 回复
 
发表评论:
载入中。。。

 
 
 

梦翔儿网站 梦飞翔的地方 http://www.dreamflier.net
中华人民共和国信息产业部TCP/IP系统 备案序号:辽ICP备09000550号

Powered by Oblog.