幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 13704|回复: 15

[NS] [原创]NScripter全攻略:LEVEL 5 LSP的混沌宇宙(1)图片的显示

[复制链接]

122

主题

3954

帖子

24万

积分

超级版主

传说中的Bunny坑神~!

Rank: 8Rank: 8

积分
244543

声命组铜赏

发表于 2006-11-14 22:18:02 | 显示全部楼层 |阅读模式
  ----------------------
邪恶之诅咒:
盗帖者全家死光光
无端转载者出门被狗咬

假如获得转载授权,转载同时请贴出本人签字画押授权书。
本教程已在国家R界专利局申请专利,禁止任何形式的侵犯版权行为。

作者联系方式:
fs_countd@126.com

以下内容需要积分高于 0 才可浏览

LEVEL 5 LSP的混沌宇宙(1) 图片的显示与动画
相关指令
print
见列表
相关格式
文字,按钮,图片动画控制参数
--------------------------------------------------------------------------
呼,欢迎来到NS十绝阵之一的SP混沌阵,我就是阵主D天君……(被听众PIA飞)
(擦擦汗飘回来)唔,总之NS里所谓的SP,也就是sprite(精灵,这个概念在RGSS里也经常出现,相信RMER也不会陌生),指的就是一些可以进行显示、消除、移动之类的操作的图片而已。
同时,将SP系列指令与其他指令,例如btnwait等的配合,还可以制作动画、按钮、地图、指令输入画面等等。如果说之前学到的东西刚刚够制作一个简单的电子小说,那么掌握了SP系列指令之后,只要再稍微发挥一点点想象力,就可以用NS制作很多有趣的其他类型游戏了。
在(1)里,首先将SP系列的指令都列出来并做一下基本说明,这些命令将在以后的几讲里分别详细叙述。之后,重点讲一下SP图片的显示,动画的设定及print指令。
--------------------------------------------------------------------------
指令    说明    备注
lsp    预载图片/文字. 包含动画格式设定    需print刷新屏幕后显示
lsph    预载图片/文字. 包含动画格式设定    默认为不显示
csp    清除图片    需print刷新屏幕后清除
vsp    图片显示/不显示状态切换    需print刷新屏幕后表现

Msp    移动图片到某相对位置    需print刷新屏幕后显示
Amsp    移动图片到画面上某绝对位置    需print刷新屏幕后显示

strsp    显示多行文字(自动改行)   
Logsp(系列)    显示文字   
spfont    定义SP显示字体    *define专用

Spbtn    将预载的图片设为按钮    普通版按钮
Exbtn    将预载的图片设为按钮    华丽版按钮

Drawsp(系列)    特殊方式描绘图片    旋转,缩放等
spwait    等待动画图片播放后继续   
allsphide    隐藏所有SP图片(包括立绘)   
allspresume    恢复所有SP图片显示   
getspmode    获取图片显示/不显示状态   
--------------------------------------------------------------------------

首先是使用LSP命令显示图片。
格式是:
Lsp 图片编号,文字列,左上角坐标X, 左上角坐标Y,(图片透明度0-255)

这个命令和之前讲过的显示人物图象并没有什么大的区别。只是增加了几个参数。
图片编号代表的是当有很多图片显示时,这些图片互相之间的重叠顺序。
数字越大,则重叠顺序越靠后。也就是说,当1号图片和2号图片同时显示在同一位置上时,2号图片会被1号图片挡住。
左上角坐标X, 左上角坐标Y,图片透明度—这个不用说了,就是图片的显示位置,透明度参数不加的话,就是默认为255。
文字列参数,通常指的是图片名称和格式。这里特别的是几个用法。
例如说,动画的相关参数也要在这里定义。
这个是NS自带的小动画,就拿它来做点实验好了。
现在新建一个实验用的工程(EXE文件和TXT文件~)
然后把以下代码复制进去看看:
  1. *define
  2. game
  3. *start
  4. lsp 1,"cursor1.bmp",0,100
  5. print 1
  6. click
  7. end
复制代码

现在,在0,100位置显示了一张静止图片。

问题:出现了没见过的命令print。那是做什么用的?
那么,就直接把这命令删了吧。
输入以下的代码:
  1. *define
  2. game
  3. *start
  4. lsp 1,"cursor1.bmp",0,100
  5. click
  6. end
复制代码


奇迹出现了——完全没反应。
Print命令是“刷新画面”的意思。而后面带的参数,则是早已熟悉的:effect效果编号。
LSP指令之后,默认是不立刻显示图片的。要等到利用print命令之后才显示。
这样一是可以做出比较华丽的显示效果,
二是可以一次性的读入大量图片再一次性显示。

再复习一下关于effect效果编号。
现在用的print 1当然是表示瞬间显示。
之前讲过的神秘效果0,现在可以说,所谓的效果0,就和LSP指令一样,意思是“不立刻显示图片”。而是等到下一次“刷新画面”的时候显示。
NS里,背景图片和人物图片显示是伴随着自动刷新画面的,
比如说,把背景的显示效果编号设为0。在显示人物的时候,画面会自动刷新,就做成了让背景和人物一起显示的效果。

LSP命令则更像是“预载”,先把相关的图片载入内存,然后等待刷新画面命令再显示。

如果觉得以上很烦,那么就记住一句话:用LSP命令之后,记得用PRINT命令……=____=

然后当然到了动画部分:
  1. *define
  2. game
  3. *start
  4. lsp 1,":/3,300,2;cursor1.bmp",100,100
  5. click
  6. end
复制代码

现在在画面上100,100的位置显示了一个动画。
cursor1.bmp是图片名,和之前[透明格式讲解]说过的一样,前面的参数部分和图片名用;隔开。
: (冒号)代表分格参数设定的开始。/3代表把图片平均分成三格。之后的300则是每格的播放时间300毫秒。
最后一个参数是2,2代表的是“把这张图片作为动画”。实际上,在2的位置用0或者1替换,也是播放动画,只是实际播放的效果并不太一样。具体的,请自己实验一下就明白了。
而如果需要给这张图片设定特别的透明格式,也只要在:(冒号)后面加入代表透明格式的l,c,或者a。也就是写成以下的形式:
lsp 1,":a/3,300,2;cursor1.bmp",100,100

问题1:那么如果需要每格的播放时间长短不一样怎么办?
NS是提供了每格设定不一样长时间的指令的。例如:
lsp 1,":a/3,<100,200,300>,2;cursor1.bmp",100,100
用尖括号里的三个参数代替了原来的300。就是这样。

问题2:这次没有使用print命令,不过图片也自动显示出来了?
嗯,看来动画是默认立刻显示的。

问题3:那么动画不能自由控制什么时候显示和用什么效果显示吗?
当然不是了,这就要使用LSP系列的第二个命令LSPH。
  1. *define
  2. game
  3. *start
  4. lsph 2,":/3,300,2;cursor1.bmp",100,100
  5. click
  6. end
复制代码

估计这里的H的意思是hide——隐藏(谁说是工口的叉出去打!),使用了LSPH以后,实际上不但不在预载的时候刷新画面,无论什么时候刷新画面,这东西都死活不会显示的……
一直到,使用vsp命令+再次刷新画面为止。
  1. *define
  2. game
  3. *start
  4. lsph 2,":/3,300,2;cursor1.bmp",100,100
  5. vsp 2,1
  6. print 1
  7. click
  8. end
复制代码

vsp指令的第一个参数代表SP图片编号,第二个参数则代表图片的显示状态。1是显示图片,0则是隐藏图片。使用后同样需要刷新屏幕。

现在应该就可以利用这几个指令自由的控制图片/动画的显示状态了。

顺带当然要一讲图片的消除命令CSP。
格式是:
Csp 图片编号

如果是csp -1则是代表一次性把所有的SP图片都消除。
同样,即使是消除图片,也需要等到刷新屏幕后才会有效果。
---------------------------------------------------------

本日小贴士:

1这些LSP动画相关的参数,也都可以用在ld命令显示人物的时候。算是对LD命令的一个补充讲解。觉得对眨眼动画的象素太麻烦的话,就考虑把整张人物图做成动画吧……XD

2把NS自带的cursor图片丢到根目录下,就会在换行和分页的时候自动出现等待的小图标了。如果想要自己设定等待图标的话,使用setcursor命令自定义就可以了。方法和定义SP动画一样。

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

作业:
让电子小说里的人物动起来。

---------------------------------------------------------
PS:最近发现有些恶心论坛无授权转载这里精华区的东西还一个都不署名,严重BS……
但是现在懒得和小人计较搞些什么回复帖之类的。
如果各位有看到本教程的无端转载的话,毫不留情的砸下您的砖就是对我最大的支持XD。

PS的PS:
LSP系列实在是相当繁琐的东西,而且个人对此也不是全部精通。
已经熟悉SP系列命令的各位帮忙看一下有什么遗漏的,或者觉得有什么要详细讲的。
请回帖说一下。


http://www.nvlmaker.net/
回复

使用道具 举报

60

主题

2331

帖子

120万

积分

荣誉群

SY强身,YY强国

积分
1209887
发表于 2006-11-15 08:48:47 | 显示全部楼层
啊啊……啊……
传说中的第5章,OTZ
嘴合拢不能了OTL
(\\__/) (O.o ) (> < ) This is Bunny. 我也大学了,时间过得真快啊。
回复 支持 反对

使用道具 举报

18

主题

428

帖子

5260

积分

⑦老手

在美工荒中挣扎的全能

积分
5260
QQ
发表于 2006-11-15 17:13:43 | 显示全部楼层
话说NS的立绘层不能实现复杂效果么?
回复 支持 反对

使用道具 举报

122

主题

3954

帖子

24万

积分

超级版主

传说中的Bunny坑神~!

Rank: 8Rank: 8

积分
244543

声命组铜赏

 楼主| 发表于 2006-11-15 18:37:18 | 显示全部楼层
NS的立绘层和SP层并没有什么本质区别啊。
用SP图片代替立绘不是挺正常的用法么。
http://www.nvlmaker.net/
回复 支持 反对

使用道具 举报

18

主题

428

帖子

5260

积分

⑦老手

在美工荒中挣扎的全能

积分
5260
QQ
发表于 2006-11-15 19:01:53 | 显示全部楼层
同感……Orz……话说为什么会有这个不同呢……?

把ld和lsp整合起来不就好了……
回复 支持 反对

使用道具 举报

122

主题

3954

帖子

24万

积分

超级版主

传说中的Bunny坑神~!

Rank: 8Rank: 8

积分
244543

声命组铜赏

 楼主| 发表于 2006-11-15 19:17:03 | 显示全部楼层
因为NS替做电子小说的人考虑得非常周全,基本指令一旦掌握制作速度就很高了。
这点相比起KAG3来说强太多了。
http://www.nvlmaker.net/
回复 支持 反对

使用道具 举报

18

主题

428

帖子

5260

积分

⑦老手

在美工荒中挣扎的全能

积分
5260
QQ
发表于 2006-11-15 21:02:01 | 显示全部楼层
话说和KAG3相比……我觉得NS设计没有KAG紧凑……
KAG可以把整个系统封装到正常只需要几条指令……但是NS似乎比较麻烦……
回复 支持 反对

使用道具 举报

122

主题

3954

帖子

24万

积分

超级版主

传说中的Bunny坑神~!

Rank: 8Rank: 8

积分
244543

声命组铜赏

 楼主| 发表于 2006-11-16 12:06:59 | 显示全部楼层
像BACKLAY之类的指令一多,事情的麻烦就大了……
虽然习惯了以后会觉得很方便,不过连基本指令都不讲清楚,难怪新手老觉得会被吓到。
http://www.nvlmaker.net/
回复 支持 反对

使用道具 举报

36

主题

707

帖子

5593

积分

⑦老手

花啊~~~~~

积分
5593
QQ
发表于 2006-11-16 12:24:13 | 显示全部楼层
邪恶的转走了


下次记得这么写:随便抄我教程者死全家(用粵語)
上次在某个游戏攻略网站看到的=&quot;=!
在前苏联一位小白训导师如是说:К чёрту,юнец!
回复 支持 反对

使用道具 举报

18

主题

428

帖子

5260

积分

⑦老手

在美工荒中挣扎的全能

积分
5260
QQ
发表于 2006-11-16 18:51:59 | 显示全部楼层
引用第7楼CountD2006-11-16 12:06发表的:
像BACKLAY之类的指令一多,事情的麻烦就大了……
虽然习惯了以后会觉得很方便,不过连基本指令都不讲清楚,难怪新手老觉得会被吓到。

我们一般习惯把实现这些功能的命令封装起来……
封装成数个简单的命令……基本上熟练用户应该可以记住所有常用指令(应该可以&lt;15条)……

这就是KAGeXpress的设计思路……

这样下来除非作特效,否则backlay一点用处都没有了……

话说NS的Macro相当于KAG的Subroutine?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-4-19 11:22 , Processed in 0.026391 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表