kiseeyou
2010-05-26 11:44:33
LEVEL 5 LSP的混沌宇宙(1)图片的显示与动画
--------------------------------------------------------------------------------
由于LSP指令系列有表格,网页无法显示,同时提供DOC格式:
5LSP的混沌宇宙(1)图片的显示与动画.doc
--------------------------------------------------------------------------------
相关指令
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文件~)
然后把以下代码复制进去看看:
Copy code
*define
game
*start
lsp 1,"cursor1.bmp",0,100
print 1
click
end
现在,在0,100位置显示了一张静止图片。
问题:出现了没见过的命令print。那是做什么用的?
那么,就直接把这命令删了吧。
输入以下的代码:
Copy code
*define
game
*start
lsp 1,"cursor1.bmp",0,100
click
end
奇迹出现了——完全没反应。
Print命令是“刷新画面”的意思。而后面带的参数,则是早已熟悉的:effect效果编号。
LSP指令之后,默认是不立刻显示图片的。要等到利用print命令之后才显示。
这样一是可以做出比较华丽的显示效果,
二是可以一次性的读入大量图片再一次性显示。
再复习一下关于effect效果编号。
现在用的print 1当然是表示瞬间显示。
之前讲过的神秘效果0,现在可以说,所谓的效果0,就和LSP指令一样,意思是“不立刻显示图片”。而是等到下一次“刷新画面”的时候显示。
NS里,背景图片和人物图片显示是伴随着自动刷新画面的,
比如说,把背景的显示效果编号设为0。在显示人物的时候,画面会自动刷新,就做成了让背景和人物一起显示的效果。
LSP命令则更像是“预载”,先把相关的图片载入内存,然后等待刷新画面命令再显示。
如果觉得以上很烦,那么就记住一句话:用LSP命令之后,记得用PRINT命令……=____=
然后当然到了动画部分:
Copy code
*define
game
*start
lsp 1,":/3,300,2;cursor1.bmp",100,100
click
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。
Copy code
*define
game
*start
lsph 2,":/3,300,2;cursor1.bmp",100,100
click
end
估计这里的H的意思是hide——隐藏(谁说是工口的叉出去打!),使用了LSPH以后,实际上不但不在预载的时候刷新画面,无论什么时候刷新画面,这东西都死活不会显示的……
一直到,使用vsp命令+再次刷新画面为止。
Copy code
*define
game
*start
lsph 2,":/3,300,2;cursor1.bmp",100,100
vsp 2,1
print 1
click
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系列命令的各位帮忙看一下有什么遗漏的,或者觉得有什么要详细讲的。
忆纱宇悠
2012-11-25 15:36:36
学习了